我有一个使用CircleCI在服务器上部署的Django项目。服务器是一个基本的云服务器,我可以通过SSH进入它。
我设置了deployment
文件的circle.yml
部分,一切正常。我希望在部署后自动在服务器上执行某些操作(例如迁移数据库或重新加载gunicorn)。
我有办法用CircleCI做到这一点吗?我查看了文档,但无法找到与此特定问题相关的任何内容。我也尝试在部署步骤之后放置ssh user@my_server_ip
,但后来我卡住了,无法执行任何操作。我可以成功SSH,但其他命令不会被调用。
这是我理想的circle.yml
文件的样子:
deployment:
staging:
branch: develop
commands:
- rsync --update ./requirements.txt user@server:/home/user/requirements.txt
- rsync -r --update ./myapp/ user@server:/home/user/myapp/
- ssh user@server
- workon myapp_venv
- cd /home/user/
- pip install -r requirements.txt
答案 0 :(得分:1)
我通过在服务器上放置一个post_deploy.sh
文件并将此行放在circle.yml
上解决了这个问题:
ssh -i ~/.ssh/id_myhost user@server 'post_deploy.sh'
它执行post_deploy.sh
文件中的指令,这正是我想要的。