1、宿主机中创建目录

mkdir -p /jenkins_home

2、编辑compose文件,文件名jenkins.yml

version: '3.4'
services:
jenkins-upgrade:
volumes:
- /jenkins_home:/var/jenkins_home
image: jenkins/jenkins:lts
ports:
- :
- :
deploy:
mode: global
update_config:
parallelism:
delay: 10s
order: stop-first

宿主机端口和容器被映射的端口一定要一致

3、部署,执行命令

docker stack deploy -c jenkins.yml jenkins

不好意思今天博客园抽风,贴不上图,一贴图就提示我登陆,后边再补图吧

4、访问8080端口,选择必须的插件,配置用户名密码(略)

5、安装插件 Maven Integration plugin 、SSH、Gitlab和Gitlab Hook Plugin

5.1、在系统管理-全局工具配置中,找到并点击“Maven 安装...”按钮,填写Maven Name(随意填写),勾选自动安装,并保存

6、新建一个maven任务,

7、在源码管理中添加源码地址,增加用户名密码凭据

8、在构建触发器中 选中Build when a change is pushed to GitLab,后边的地址就是git的webhook要填的地址,在高级中生成Secret token,也填到git的webhook中

9、在Build中的Goals and options里填写clean package

10、在Post Steps中添加Execute shell script on remote host using ssh,分别填写SSH的地址和要执行的命令,SSH的地址需要先在  系统管理-系统设置 的 SSH remote hosts  添加相关数据,然后才能在下拉框中选中。参考命令如下:

/usr/local/apache-tomcat-8.5./bin/shutdown.sh
rm -f /usr/local/apache-tomcat-8.5./webapps/upgrade.war
cp -f /jenkins_home/workspace/upgrade-manager-maven/target/upgrade-manager-0.0.1.war /usr/local/apache-tomcat-8.5./webapps/upgrade.war
/usr/local/apache-tomcat-8.5./bin/startup.sh

容器集群模式部署参考命令如下:

export LAST_HTML_IMAGE_NAME=`docker images |grep html-in-microservice|sed -n '1p'|awk {'print $1":"$2'}`
sed -i "s#image:.*#image: $LAST_HTML_IMAGE_NAME#g" /apps/html.yml
nohup docker save -o /docker-images/html-`docker images|grep html-in-microservice|sed -n '1p'|awk {'print $2'}`.tar $LAST_HTML_IMAGE_NAME >/dev/null >& &
nohup docker stack deploy -c /apps/html.yml html >/dev/null >& &

保存即可

11、再gitlab的webhook中配置相应的内容

之后再提交代码就会触发构筑和脚本执行

(完毕)

centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本的更多相关文章

  1. 利用github的webhook进行自动部署

    利用github的webhook进行自动部署 github提供了webhook功能,大概意思就是,当你提交了代码,git检测到你进行了push,可以调起你一个你知道的url. 这个功能有什么用了?比如 ...

  2. 在docker中运行jenkins实现代码自动发布到测试服务器

    在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...

  3. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...

  4. docker_facenet_image在Docker容器中运行Facenet环境搭建

    对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...

  5. .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑

    今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...

  6. 一个docker容器中运行多个服务还是弄一堆docker容器运行?

    不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经 ...

  7. 在docker容器中运行hello world!

    在docker容器中运行hello world! docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统.系统类库.shell 环境等等.但这个沙盒默认是不会 ...

  8. Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro

    Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...

  9. .Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库

    .Net  Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库  , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...

随机推荐

  1. c#中的数组、ArrayList、List区别【转】

    首先说明C#中的Array类:Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义.Array 类提供了各种用于数组的属性和方法.关于Array类的一些属性及方法详见博文:C ...

  2. Solr调研总结(转)

    Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境搭建及调试.两个核心配置文件介绍.中文分词器配置.维护索引 ...

  3. Reboot server stuck at “Press ESC in 1 seconds to skip startup.nsh”

    I have a Cisco C240 server, and everytime after reboot, it will got stuck at screen like below. To r ...

  4. VS Code .vue文件代码缩进以及格式化代码

    首先在应用商店中搜索“Vetur”插件安装,然后进行下面操作: 文件->首选项->设置,然后在右边编辑框输入以下设置: { "prettier.tabWidth": 4 ...

  5. Delphi获取默认打印机名称及端口

    Delphi获取默认打印机名称及端口 在前段时间写的收银系统中由于目前市场上很多电脑主板上已经没有并口,而POS机却又需要并口,所以目前需要用PCI转接卡,这个就导致不同门店使用的端口就有可能不同,这 ...

  6. python实现itemCF and userCF

    http://my.oschina.net/zhangjiawen/blog/185625 1基于用户的协同过滤算法: 基于用户的协同过滤算法是推荐系统中最古老的的算法,可以说是这个算法的诞生标志了推 ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十八)ES6.2.2 增删改查基本操作

    #文档元数据 一个文档不仅仅包含它的数据 ,也包含 元数据 —— 有关 文档的信息. 三个必须的元数据元素如下:## _index    文档在哪存放 ## _type    文档表示的对象类别 ## ...

  8. Linux下逻辑地址-线性地址-物理地址图解(转)

    一.逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到. 我们写个最简单的hello world程序 ...

  9. android中使用WebView请求本地网页

    使用WebView的方式请参考我的上一篇文章:android中使用WebView请求网页 这里说一下请求本地网页的方法: 本地网页应该把网页保存在src/main/assets目录下: webView ...

  10. CMUSphinx Learn - Basic concepts of speech

    Basic concepts of speech Speech is a complex phenomenon. People rarely understand how is it produced ...