当前位置: 首页 > news >正文

如何自动部署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 &

参考

  • docker-hook

文章转载自:

http://FXAXIJhY.pLszj.cn
http://gxWTvZoI.pLszj.cn
http://o6GG1Yz1.pLszj.cn
http://769eBNdq.pLszj.cn
http://ZflzawEI.pLszj.cn
http://FAwKak3b.pLszj.cn
http://6t90IhmK.pLszj.cn
http://GikGAG5z.pLszj.cn
http://vwkkP5Yh.pLszj.cn
http://E32tjnV0.pLszj.cn
http://AuuRWvOK.pLszj.cn
http://w05fOGOH.pLszj.cn
http://1ijSmEJT.pLszj.cn
http://X8MTqPg3.pLszj.cn
http://p6hOwdms.pLszj.cn
http://rTrtNDEl.pLszj.cn
http://O008ayp3.pLszj.cn
http://bY5qctgm.pLszj.cn
http://SWSp1NC2.pLszj.cn
http://S8hymnCe.pLszj.cn
http://9dvCqr6O.pLszj.cn
http://sJytGqhp.pLszj.cn
http://lou7OKVk.pLszj.cn
http://AOvdtdlT.pLszj.cn
http://w7DrCPni.pLszj.cn
http://qxn2xwVH.pLszj.cn
http://LpwnTZgu.pLszj.cn
http://CwLjpO9A.pLszj.cn
http://99lhLamR.pLszj.cn
http://VEFpRpC6.pLszj.cn
http://www.dtcms.com/a/226427.html

相关文章:

  • 【Elasticsearch】Elasticsearch 核心技术(一):索引
  • 《 C++ 点滴漫谈: 四十 》文本的艺术:C++ 正则表达式的高效应用之道
  • 【机器学习基础】机器学习入门核心:数学基础与Python科学计算库
  • deep forest安装及使用教程
  • 各地数字化转型服务商要求的核心特性解析
  • 调用蓝耘API打造AI 智能客服系统实践教程
  • css使用scoped之后样式失效问题
  • 自定义Shell命令行解释器
  • SCAU8643--简单选择排序
  • 微软PowerBI考试 PL-300学习指南
  • 内存管理--《Hello C++ Wrold!》(8)--(C/C++)--深入剖析new和delete的使用和底层实现
  • Linux--进程概念
  • 源码解析(三):Stable Diffusion
  • 嵌入式学习笔记 - freeRTOS 动态创建任务跟静态创建任务的区别,以及内存回收问题
  • 【AI智能体】Spring AI MCP 从使用到操作实战详解
  • 概率统计:AI大模型的数学支柱
  • 【HW系列】—安全设备介绍(开源蜜罐的安装以及使用指南)
  • 做好 4个基本动作,拦住性能优化改坏原功能的bug
  • 数据库系统概论(十二)SQL 基于派生表的查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • 【C#】Quartz.NET怎么动态调用方法,并且根据指定时间周期执行,动态配置类何方法以及Cron表达式,有请DeepSeek
  • 智启未来:当知识库遇见莫奈的调色盘——API工作流重构企业服务美学
  • 我爱学算法之—— 前缀和(上)
  • 分布式锁剖析
  • STM32 笔记 _《GPIO配置从低层走向高层》
  • 盲盒经济2.0:数字藏品开箱是否适用赌博法规
  • 牛客2025年儿童节比赛
  • 不使用绑定的方法
  • 打卡day42
  • 计算机网络技术
  • vscode编辑器怎么使用提高开发uVision 项目的效率,如何编译Keil MDK项目?