Deben suceder algunas cosas para que esto funcione correctamente. Primero, agrega una deployment
sección a 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
Gracias a esta publicación de blog por el siguiente script. Luego, cree un archivo llamado start.sh en el nivel superior de su repositorio (si usa un nombre diferente, cambie la última línea de circle.yml) que contenga lo siguiente:
#!/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
Finalmente, para permitir que el script funcione, deberá configurar el script para que sea ejecutable chmod
y agregar las variables de entorno y la DEPLOY_USER
clave ssh de su (preferiblemente) o credenciales (si no hay una clave ssh) a CircleCI. Después de hacer eso, CircleCI debe implementar su aplicación después de una compilación exitosa.