Quelques choses doivent se produire pour que cela fonctionne correctement. Tout d'abord, ajoutez une deployment
section à circle.yml:
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
Merci à ce billet de blog pour le script suivant. Ensuite, créez un fichier appelé start.sh au niveau supérieur de votre référentiel (si vous utilisez un nom différent, modifiez la dernière ligne de circle.yml) qui contient les éléments suivants:
#!/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
Enfin, pour permettre au script de fonctionner, vous devrez définir le script pour qu'il soit exécutable chmod
et ajouter les variables d'environnement et votre DEPLOY_USER
clé ssh (de préférence) ou vos informations d'identification (si aucune clé ssh) à CircleCI. Après cela, CircleCI devrait déployer votre application après une construction réussie.