2016-10-12 2 views
0

CircleCIを使用してサーバーにデプロイするDjangoプロジェクトがあります。サーバーは基本的なクラウドサーバーであり、私はそのサーバーにSSHできます。CircleCIデプロイメント後にサーバー上でアクションを実行

私のcircle.ymlファイルのdeploymentセクションをセットアップして、すべて正常に動作しています。私は自動的に展開後にサーバー上でいくつかのアクションを実行したいと思います(データベースの移行やgunicornの再ロードなど)。

私はCircleCIでそれを行う方法がありますか?私はドキュメントを見ましたが、この特定の問題に関連するものは見つかりませんでした。私はまた、私の展開のステップの後にssh [email protected]_server_ipを入れようとしましたが、つまってしまい、何もできません。私は正常にSSHを入れることができますが、残りのコマンドは呼び出されません。ここで

が私の理想circle.ymlファイルは次のようになります。

deployment: 
    staging: 
    branch: develop 
     commands: 
     - rsync --update ./requirements.txt [email protected]:/home/user/requirements.txt 
     - rsync -r --update ./myapp/ [email protected]:/home/user/myapp/ 
     - ssh [email protected] 
     - workon myapp_venv 
     - cd /home/user/ 
     - pip install -r requirements.txt 

答えて

1

私は、サーバー上のpost_deploy.shファイルを入れて、circle.ymlにこのラインを置くことによって、問題を解決: ssh -i ~/.ssh/id_myhost [email protected] 'post_deploy.sh' それは命令を実行しますpost_deploy.shファイルにあります。これはまさに私が望んでいたものです。

関連する問題