Algumas coisas precisam acontecer para que isso funcione corretamente. Primeiro, adicione uma deployment
seção ao 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
Obrigado a esta postagem no blog pelo script a seguir. Em seguida, crie um arquivo chamado start.sh no nível superior do seu repositório (se você usar um nome diferente, altere a última linha do circle.yml) que contém o seguinte:
#!/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 o script funcione, você precisará definir o script para ser executável chmod
e adicionar as variáveis de ambiente e a DEPLOY_USER
chave ssh da sua (de preferência) ou credenciais (se não houver chave ssh) ao CircleCI. Depois disso, o CircleCI deve implantar seu aplicativo após uma compilação bem-sucedida.