如何自动部署
原理
- GitLab有预制的钩子, 在代码提交/合并等事件中,会自动调用WebHoos, 即向该URL发送POST请求
- 在布署服务器上监听该POST, 验证通过后执行相关的布置Shell脚本, 即可完成自动布署
配置环境
- 安装Python和Pip
- 2.如果需要, 安装python的requests模块和argparse模块
1 2
| pip install requests easy_install argparse
|
1
| curl https://raw.githubusercontent.com/zacksleo/docker-hook/master/docker-hook > /usr/local/bin/docker-hook; chmod +x /usr/local/bin/docker-hook
|
- 4.脚本安装完成后即可使用docker-hook 命令, 默认监听8555端口
1
| nohup docker-hook -t <auth-token> -c <command> &
|
其中, auth-token 替换为授权token, command替换为要执行的命令, 例如
auth-token为auto-deploy-pushserver
,command为sh /mnt/pushserver/deploy.sh
则执行命令: docker-hook -t auto-deploy-pushserver -c sh /mnt/pushserver/deploy.sh
deploy.sh的内容为:
nohup+&命令为该进程设置为守护进程, 防止进程退出
1
| nohup docker-hook -t <auth-token2> -c <command2> --port 8556 &
|
参考