Contexte du problème
L'équipe technique de démarrage de l'entreprise, sans aucune infrastructure, a besoin de construire une série d'outils de gestion de code et de déploiement automatisé. Tous les outils de base sont construits avec succès, ouais ~, jetons un coup d'il au processus de construction.
Ressources
Un serveur, CentOS, la société a donné un serveur avec une configuration inférieure en tant que serveur temporaire, pas du tout, faites-le.
Réflexion: si j'utilise du yum traditionnel pour l'installation, il sera certainement gâché par moi, et il ne me sera pas pratique de le gérer et de le maintenir. Dans des circonstances difficiles, je choisis Dokcer. Certains amis peuvent demander comment Docker est utilisé. Ne paniquez pas. Portail:
https://segmentfault.com/a/1190000016254236#articleHeader0
Configuration de l'environnement de test
Afin de mettre en place rapidement un environnement de test PHP, j'ai décidé d'utiliser laradock. Bien qu'il y ait beaucoup de fichiers, les choses encapsulées sont relativement complètes. Je ne sais pas quelle technologie sera utilisée dans le développement ultérieur. un service.
L'introduction donnée par la documentation officielle de laradock est également très complète. La façon dont j'adopte ici est de déployer plusieurs ensembles de projets. La structure du répertoire est la suivante:
+ laradock + projet-1 + projet-2commencer à utiliser:
1. clone git https://github.com/laradock/laradock
2.cp env-example .env
La configuration dans env peut être modifiée et peut être ajustée selon votre propre situation
3.docker-compose up -d nginx php-fpm mysql redis
Vous pouvez ajouter le programme que vous souhaitez démarrer plus tard, comme rabbitmq, mongo, etc., l'ajouter à la queue lorsque vous en avez besoin pour démarrer, la première heure de démarrage est un peu longue
4.docker-compose exec --user = laradock workspace bash
Des projets comme laravel auront certainement compositeur, exécutez cette commande pour entrer dans l'espace de travail, vous pouvez exécuter compositeur
5.docker-compose exec nginx nginx -s recharger
Quelqu'un va certainement me demander si je change la configuration de nginx pour redémarrer le conteneur nginx à chaque fois, ou redémarrer le conteneur entier. Sinon, exécutez cette commande pour redémarrer nginx. Où se trouve le fichier de configuration du site nginx: ./laradock/nginx/sites/
Essayons d'abord.
GitLab
Maintenant que l'environnement d'exploitation est configuré, comment dois-je stocker mon code? En fait, il existe de nombreuses options, en fonction de votre situation actuelle, telles que: GitHub, nuage de code, GitLab, etc., j'ai choisi GitLab, je ne l'ai pas trouvé au début Laradock fournit en fait des services GitLab. . Je ne peux que me lancer, c'est en fait très simple.
docker \ run-d \ -p443: 443 \ -p8080: 80 \ -p222: 22 \ -namegitlab \ -restartalways \ -v / home / gitlab / config: / etc / gitlab \ -v / home / gitlab / logs: / var / log / gitlab \ -v / home / gitlab / data: / var / opt / gitlab \ gitlab / gitlab-ce # Explication du paramètre: # -d: laissez le conteneur s'exécuter en arrière-plan # -p: exposez le port, mettez Le port 443 du conteneur pointe vers le port 443 de la machine hôte, la machine hôte 8080- > Conteneur 80, hôte 222- > Conteneur 22 # Le port hôte peut être personnalisé en fonction de votre propre situation. # -Name Donnez un nom à votre conteneur, tant qu'il ne chevauche pas celui existant. # -Restart Lorsque le conteneur se ferme, le docker redémarre # -v Une fois le disque chargé, montez le répertoire de l'hôte dans le conteneur. Même si le conteneur est cassé, mon contenu ne sera pas perdu. # Le répertoire machine / home / gitlab / config est monté dans le répertoire container / etc / gitlab, le répertoire hôte est déterminé en fonction de votre propre situation # gitlab / gitlab-ce Ceci est le miroir à démarrer, si le miroir n'existe pas, le docker téléchargera automatiquement NouveauUne fois le conteneur démarré avec succès, il y aura une période de temps pour démarrer GitLab. Lorsque vous démarrez le conteneur, vous ne pourrez pas y accéder immédiatement. Attendez un instant. Les fichiers de configuration peuvent être modifiés dans le répertoire hôte que vous spécifiez. Le contenu à modifier est le suivant :
gitlab_rails = 'IP de la machine hôte' # Adresse IP de la machine hôte gitlab_rails = 222 # Exposé au port ssh de la machine hôte external_url'Nom de domaine '# Nom de domaine attribué à gitlab, vous pouvez utiliser nginx comme proxy inverse pour le port 8080Jenkins
Il existe de nombreuses façons de réaliser un déploiement automatisé tels que: webhook, Jenkins, Travis CI, etc., mon choix est Jenkins, car il a été utilisé avant le déploiement, donc je l'utilise toujours ici, laradock fournit toujours le service Jenkins, mais parce que je ne me suis pas trouvé à construire Une. . . Il semble que je verrai plus de pratique la prochaine fois.
dockerrun-d \ -namemyjenkins \ -p8181: 8080 \ -p50000: 50000 \ -v / home / jenkins /: / var / jenkins_home \ jenkins / jenkins # explication du paramètre # -d: laisser le conteneur s'exécuter en arrière-plan # -p: exposé Port, hôte 8181 > Conteneur 8080, hôte 50000- > Container 50000 # -v Ceci est le disque de montage, montez le répertoire hôte sur le conteneur, même si le conteneur est cassé, mon contenu ne sera pas perdu. # Le répertoire host / home / jenkins / est monté dans le répertoire container / var / jenkins_home, le répertoire host est déterminé en fonction de votre propre situationEst-ce aussi très simple ~. ~, Mais il y aura un mot de passe d'initialisation après l'installation réussie de Jenkins, comment vérifier le mot de passe d'initialisation, il y a deux façons:
Dockerlogs # First way < Le nom de votre conteneur > # Cela vous permettra de voir le contenu de la sortie du conteneur # La deuxième façon cat / home / jenkins / secrets / initialAdminPassword # Voici bon / home / jenkins doit être remplacé par le répertoire que vous montezconfiguration de jenkins
initialisation
Entrez le mot de passe d'initialisation que vous avez obtenu ci-dessus. L'étape suivante que j'ai choisie est l'installation recommandée. Si vous en avez besoin plus tard, vous pouvez vous rendre dans la bibliothèque de plug-ins pour l'installer.
Installation de plug-in
Après une initialisation réussie, accédez aux paramètres système - > La gestion des plug-ins installe plusieurs plug-ins nécessaires:
PublishOverSSHGitLabPlugin # Parce qu'il s'agit de Gitlab, nous devons installer ce NodeJSPlugin # Vue utilisé par notre frontal, nous devons donc utiliser le nudCommencez le voyage
1. Configuration de base
Après avoir installé le plugin, vous devez configurer certains contenus de base tels que jdk, node, ssh, etc.
Installation 1.ssh
Entrez: Gérer Jenkins- > Configurer le système
Cliquez sur Avancé:
Cliquez sur Tester la configuration pour tester si la connexion est réussie
2.jdk, git
Entrez: Gérer Jenkins- > Configuration globale de l'outil
J'utilise l'installation automatique de jdk et git ici. Vous avez besoin d'un compte lorsque jdk est installé, il vous suffit de vous inscrire
3. installation de noeudjs
Deuxièmement, créez un projet
- Créer un nouveau projet
- Choisissez un style libre
3. Ingénierie de configuration
Configurer pour conserver quelques versions à construire
Utilisez l'outil de code source git, entrez l'adresse git, ajoutez l'utilisateur git
if; thenrmtestv.tar.gzfitar-zcvftest.tar.gz ./*Pourquoi emballer le projet ici, car le ssh à configurer ci-dessous ne prend pas en charge le transfert de dossier, vous devez donc d'abord empaqueter le contenu, puis aller sur le serveur pour décompresser
Une fois que tous sont enregistrés, vous pouvez construire. Ouais ~