Ein paar Dinge müssen passieren, damit dies richtig funktioniert. deployment
Fügen Sie zunächst einen Abschnitt zu circle.yml hinzu:
deployment:
main: # or whatever your deployment is called
branch: master # or whatever branch you want to deploy
commands:
- docker login -e (your email here) -u (your username here) -p (your password here)
- docker push pgeiss/appname
- ./start.sh
Vielen Dank an diesen Blog-Beitrag für das folgende Skript. Erstellen Sie dann eine Datei mit dem Namen start.sh in der obersten Ebene Ihres Repositorys (wenn Sie einen anderen Namen verwenden, ändern Sie die letzte Zeile von circle.yml), die Folgendes enthält:
#!/usr/bin/env bash
echo "stopping running application"
ssh $DEPLOY_USER@$DEPLOY_HOST 'docker stop dodsv'
ssh $DEPLOY_USER@$DEPLOY_HOST 'docker rm dodsv'
echo "pulling latest version of the code"
ssh $DEPLOY_USER@$DEPLOY_HOST 'docker pull pgeiss/appname-webapp:latest'
echo "starting the new version"
ssh $DEPLOY_USER@$DEPLOY_HOST 'docker run -d --restart=always --name dodsv -p 80:5432 pgeiss/appname:latest'
echo "success!"
exit 0
Damit das Skript funktioniert, müssen Sie das Skript so einstellen, dass es ausführbar ist, chmod
und CircleCI die Umgebungsvariablen und den DEPLOY_USER
SSH-Schlüssel (vorzugsweise) oder die Anmeldeinformationen (falls kein SSH-Schlüssel) hinzufügen. Danach sollte CircleCI Ihre App nach einem erfolgreichen Build bereitstellen.