Maintenant que j'ai enfin commencé à apprendre Docker, je vais résumer ma compréhension.
git clone
le dépôt de github et git pull
+ docker-compose up
chaque fois qu'il a été mis à jour.CodeDeploy
CodePipeline
pour automatiser la séquence d'étapes ci-dessus
Et cette fois aussi, docker n'a rien à voir avec ça. ..
Au moment de deux fois avant, l'instance EC2 a été démarrée et docker
et docker-compose
ont été installés.
CodeDeploy Agent
sur l'instance EC2CodeDeploy
et ʻApplicationStart.bash
CodePipeline
Code Deploy Agent
sur l'instance EC2Ici et Ici .com / ja_jp / codedeploy / latest / userguide / resource-kit.html # resource-kit-bucket-names)
#Tout d'abord, connectez-vous à EC2
ssh -i "ec2-key.pem" [email protected]
#Installation
sudo yum update
sudo yum install ruby
sudo yum install wget
cd /home/ec2-user
#Voici un bucket pour chaque environnement-nom et région-Modifier l'identifiant
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
En passant, si ce qui précède est décrit dans les données utilisateur du paramètre de démarrage de l'instance, il sera automatiquement exécuté lors de la création de l'instance, comme AutoScalling. Cela n'a pas d'importance cette fois.
CodeDeploy
Sélectionnez EC2 comme plate-forme
Même procédure que la création d'un rôle pour EC2 plus tôt.
Le nom du groupe de déploiement est approprié. Pour le rôle de service, attachez le rôle pour CodeDeploy créé précédemment.
Sélectionnez sur place comme type de déploiement. Définissez le paramètre d'environnement sur l'instance EC ". Ici, les balises sont utilisées pour déterminer sur quel EC2 déployer. Déployé sur tous les EC2 avec la balise sélectionnée. Pratique pour un déploiement sur plusieurs EC2 en même temps.
Spécifiez les paramètres de déploiement par défaut. Cette fois, nous n'utilisons pas l'équilibreur de charge.
et ʻApplicationStart.bash
Je déploie le code en conjonction avec le référentiel git, mais en plus du code source, je dois enregistrer un fichier qui décrit comment le déployer dans le répertoire racine du référentiel git. Et le nom du fichier est fixé comme ʻappspec.yml`. Pour une rédaction spécifique, voir ici et [ici] J'ai fait référence à l'article (https://dev.classmethod.jp/articles/code-deploy-appspec/). Merci beaucoup.
appspec.yml
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/simple-docker-pjt
runas: ec2-user
permissions:
- object: /
pattern: '**'
owner: ec2-user
group: ec2-user
hooks:
ApplicationStart:
- location: scripts/ApplicationStart.bash
runas: ec2-user
De plus, après avoir copié et installé le code sur EC2 selon ʻappspec.yml, vous devez réellement faire
docker-compose up. Décrivez-le dans ʻApplicationStart.bash
.
Veuillez faire attention à la partie -d
de docker-compose up -d
. Si vous ne l'exécutez pas en arrière-plan, le déploiement ne se terminera jamais.
./scripts/ApplicationStart.bash
#!/bin/bash -e
cd /home/ec2-user/simple-docker-pjt
sudo systemctl start docker
docker-compose up -d
Sélectionnez une application et cliquez sur "Créer un déploiement". Sélectionnez github pour "Type de révision" et entrez le nom de votre compte comme nom de jeton. Et connectez-vous. Spécifiez également le nom du référentiel de la destination de connexion et l'ID de validation à tout moment que vous souhaitez déployer.
Si vous créez un déploiement avec cela, vous devriez pouvoir déployer sans problèmes. Je suis ici.
Code Pipeline
Créez un nouveau pipeline à partir de la console CodePipeline. Si vous définissez correctement le nom du pipeline, le nom du rôle de service sera également défini automatiquement.
Sélectionnez github (ver.1) comme étape source et connectez-vous à votre compte.
Sélectionnez un référentiel et une branche.
Ignorez l'étape de construction (car il s'agit d'un langage sans compilation)
Le fournisseur de déploiement sélectionne «CodeDeploy» et sélectionne l'application et le groupe de déploiement que vous venez de créer.
Pour qu'EC2 utilise Code Pipeline, l'accès à S3 est requis. Par conséquent, ajoutez la stratégie ʻAmazon S3FullAccess` au rôle qui était attaché à EC2 précédemment.
Les réglages sont maintenant terminés. Pousser le code vers git le déploiera automatiquement sur EC2.
YouTube de Kurokawa. J'y fais toujours référence. https://youtu.be/8mPm7jolnVk
Recommended Posts