如何自动部署GitLab项目

如何自动部署

原理

  • GitLab有预制的钩子, 在代码提交/合并等事件中,会自动调用WebHoos, 即向该URL发送POST请求
  • 在布署服务器上监听该POST, 验证通过后执行相关的布置Shell脚本, 即可完成自动布署

配置环境

    1. 安装Python和Pip
  • 2.如果需要, 安装python的requests模块和argparse模块

    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端口

    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的内容为:

复制代码
git push origin dev

nohup+&命令为该进程设置为守护进程, 防止进程退出

  • 5.在GitLab的项目设置里面,设置Webhooks, 本例子中则为139.198.9.141:8555/audo-deploy-pushserver

    1. 注意, 如果需要部署多个hooks, 则需要通过--port配置不同的端口, 例如

    nohup docker-hook -t <auth-token2> -c <command2> --port 8556 &

参考

相关推荐
极小狐20 小时前
GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【二】
ci/cd·gitlab·devsecops·devops·极狐gitlab
不念霉运3 天前
2025 Gitee vs. GitLab:全面对比与选择指南
gitee·gitlab
水瓶_bxt3 天前
创建 GitLab Runner 使用CICD自动化部署容器
eureka·自动化·gitlab
黑心的奥利奥5 天前
Docker配置Gitlab-runner实现自动化容器化部署前端项目
docker·自动化·gitlab
wuzuyu3655 天前
在腾讯云上安装gitlab
云计算·gitlab·腾讯云
xiaodaiwang5 天前
OpenEuler 22.03 系统上安装配置gitlab runner
gitlab
TimberWill6 天前
gitlab私服搭建
gitlab
中东大鹅6 天前
访问 gitlab 跳转 0.0.0.0
gitlab
guygg886 天前
配置本地git到gitlab并推送
git·gitlab
大A崛起7 天前
Gitlab-CI实现组件自动推送
ci/cd·gitlab·github