Nachdem ich endlich angefangen habe, Docker zu lernen, fasse ich mein Verständnis zusammen.
git clone
das Repository von github und git pull
+ docker-compose up
jedes Mal, wenn es aktualisiert wurde.Und auch diesmal hat Docker nichts damit zu tun. ..
Zum Zeitpunkt von zweimal zuvor wurde die EC2-Instanz gestartet und "Docker" und "Docker-Compose" installiert.
CodeDeploy
-Einstellungenappspec.yml
und ApplicationStart.bash
CodePipeline
EinstellungenHier und Hier .com / ja_jp / codedeploy / latest / userguide / resource-kit.html # Ressourcen-Kit-Bucket-Namen)
#Melden Sie sich zunächst bei EC2 an
ssh -i "ec2-key.pem" [email protected]
#Installation
sudo yum update
sudo yum install ruby
sudo yum install wget
cd /home/ec2-user
#Hier ist ein Eimer für jede Umgebung-Name und Region-Kennung ändern
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
chmod +x ./install
sudo ./install auto
sudo service codedeploy-agent status
Übrigens, wenn das Obige in den Benutzerdaten der Instanz-Starteinstellung beschrieben ist, wird es automatisch ausgeführt, wenn die Instanz erstellt wird, wie z. B. AutoScalling. Diesmal spielt es keine Rolle.
CodeDeploy
-EinstellungenWählen Sie EC2 als Plattform
Gleiches Verfahren wie beim vorherigen Erstellen einer Rolle für EC2.
Der Name der Bereitstellungsgruppe ist angemessen. Fügen Sie für die Servicerolle die zuvor erstellte Rolle für CodeDeploy hinzu.
Wählen Sie In-Place als Bereitstellungstyp aus. Setzen Sie die Umgebungseinstellung auf EC "-Instanz. Hier werden Tags verwendet, um zu bestimmen, auf welchem EC2 bereitgestellt werden soll. Wird für alle EC2 mit dem ausgewählten Tag bereitgestellt. Praktisch für die gleichzeitige Bereitstellung auf mehreren EC2.
Geben Sie die Standardbereitstellungseinstellungen an. Dieses Mal verwenden wir keinen Load Balancer.
appspec.yml
und ApplicationStart.bash
Ich stelle den Code in Verbindung mit dem Git-Repository bereit, aber zusätzlich zum Quellcode muss ich eine Datei speichern, in der beschrieben wird, wie er im Stammverzeichnis des Git-Repositorys bereitgestellt wird. Und der Dateiname ist fest als "appspec.yml". Spezifisches Schreiben finden Sie unter hier und [hier] Ich habe auf den Artikel verwiesen (https://dev.classmethod.jp/articles/code-deploy-appspec/). Vielen Dank.
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
Nachdem Sie den Code gemäß appspec.yml
auf EC2 kopiert und installiert haben, müssen Sie tatsächlich docker-compose up
ausführen.
Beschreiben Sie es in ApplicationStart.bash
.
Bitte seien Sie vorsichtig mit dem -d
Teil von Docker-Compose Up -d
. Wenn Sie es nicht im Hintergrund ausführen, wird die Bereitstellung niemals beendet.
./scripts/ApplicationStart.bash
#!/bin/bash -e
cd /home/ec2-user/simple-docker-pjt
sudo systemctl start docker
docker-compose up -d
Wählen Sie eine Anwendung aus und klicken Sie auf "Bereitstellung erstellen". Wählen Sie github für "Revisionstyp" und geben Sie Ihren Kontonamen als Token-Namen ein. Und verbinden. Geben Sie außerdem jederzeit den Repository-Namen des Verbindungsziels und die Festschreibungs-ID an, die Sie bereitstellen möchten.
Wenn Sie damit eine Bereitstellung erstellen, sollten Sie diese problemlos bereitstellen können. Ich bin da.
Code Pipeline
EinstellungenErstellen Sie eine neue Pipeline über die CodePipeline-Konsole. Wenn Sie den Pipeline-Namen entsprechend festlegen, wird auch der Name der Servicerolle automatisch festgelegt.
Wählen Sie github (Version 1) als Quellstufe und stellen Sie eine Verbindung zu Ihrem Konto her.
Wählen Sie ein Repository und einen Zweig aus.
Überspringen Sie die Build-Phase (da dies eine Build-freie Sprache ist)
Der Bereitstellungsanbieter wählt "CodeDeploy" aus und wählt die Anwendung und Bereitstellungsgruppe aus, die Sie gerade erstellt haben.
Damit EC2 die Code-Pipeline verwenden kann, ist Zugriff auf S3 erforderlich. Fügen Sie daher die Rolle "AmazonS3FullAccess" zu der Rolle hinzu, die zuvor an EC2 angehängt wurde.
Die Einstellungen sind jetzt abgeschlossen. Wenn Sie den Code an git senden, wird er automatisch in EC2 bereitgestellt.
Kurokawas Youtube. Ich beziehe mich immer darauf. https://youtu.be/8mPm7jolnVk
Recommended Posts