これが正しく機能するには、いくつかのことが発生する必要があります。まず、deployment
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
次のスクリプトについては、このブログ投稿に感謝します。次に、リポジトリの最上位にstart.shというファイルを作成します(別の名前を使用する場合は、circle.ymlの最後の行を変更してください)。
#!/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
最後に、スクリプトを機能させるには、スクリプトを実行可能に設定しchmod
、環境変数とDEPLOY_USER
sshキー(できれば)または資格情報(sshキーがない場合)をCircleCIに追加する必要があります。これを行った後、CircleCIはビルドが成功した後にアプリをデプロイする必要があります。