centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本
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触发自动部署脚本的更多相关文章
- 利用github的webhook进行自动部署
利用github的webhook进行自动部署 github提供了webhook功能,大概意思就是,当你提交了代码,git检测到你进行了push,可以调起你一个你知道的url. 这个功能有什么用了?比如 ...
- 在docker中运行jenkins实现代码自动发布到测试服务器
在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:80 ...
- Docker容器中运行ASP.NET Core
在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...
- docker_facenet_image在Docker容器中运行Facenet环境搭建
对开发和运维人员来说,可能最梦寐以求的就是一次性地创建或配置,可以在任意环境.任意时间让应用正常运行.而Docker恰恰是可以实现这一终极目标的瑞士军刀. 具体来说,Docker在开发和运维过程中,具 ...
- .NetCore下使用IdentityServer4 & JwtBearer认证授权在CentOS Docker容器中运行遇到的坑及填坑
今天我把WebAPI部署到CentOS Docker容器中运行,发现原有在Windows下允许的JWTBearer配置出现了问题 在Window下我一直使用这个配置,没有问题 services.Add ...
- 一个docker容器中运行多个服务还是弄一堆docker容器运行?
不建议直接在单个 Docker 容器中运行多个程序. 以 2017年 10 月18 日 Docker 官方支持 Kubernetes 为分水岭计算,Kubernetes 赢得容器编排之战的最终胜利已经 ...
- 在docker容器中运行hello world!
在docker容器中运行hello world! docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统.系统类库.shell 环境等等.但这个沙盒默认是不会 ...
- Elasticsearch核心技术(1)--- Docker容器中运行ES、Kibana、Cerebro
Docker容器中运行ES,Kibana,Cerebro和Logstash安装与数据导入ES 想加强ES有关的知识,看了阮一鸣老师讲的<Elasticsearch核心技术与实战>收获很大, ...
- .Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库
.Net Core 3.0 的 docker 容器中运行 无法 访问 Oracle数据库 , 一直报下面的错误 ORA-00604: error occurred at recursive SQL ...
随机推荐
- npm ERR! Error extracting ~/.npm/cloudant/1.9.0/package.tgz archive: ENOENT: no such file or directory, open '~/.npm/cloudant/1.9.0/package.tgz'
修改package.json Thanks machines returning the above error when , just and now all the builds are pass ...
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection
ylbtech-Error-WebForm: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\ ...
- C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像
搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...
- DOS批处理中%cd%和%~dp0的异同分析
在DOS的批处理中,有时候需要知道当前的路径.在DOS中,有两个环境变量可以跟当前路径有关,一个是%cd%, 一个是%~dp0. 这两个变量的用法和代表的内容是不同的. 1. %cd% 可以用在批处理 ...
- 第十一章 dubbo通信框架-netty4
netty4是2.5.6引入的,2.5.6之前的netty用的是netty3.在dubbo源码中相较于netty3,添加netty4主要仅仅改了两个类:NettyServer,NettyClient. ...
- vRealize 7中部署blueprint如果失败,如何不让已经被provision的虚机被删掉?
正解为: _debug_deployment 哪里用: 参考资料 ========= Custom Properties for Naming and Analyzing Deployments ht ...
- 构建配置 defaultConfig signingConfigs buildTypes productFlavors dependencies
测试项目位置:https://github.com/baiqiantao/FragmentTest.git 项目结构: project 目录的 build.gradle 文件 // Top-level ...
- \r\n 如何转换成utf-8格式的,在jsp页面中正常显示换行
数据库中存的换行是\r\n,读取到UTF-8编码的JSP 页面上以后,没有换行 在jsp页面显示之前,要进行一下字符转换,将所有\r\n转换成<br>,如下: String result ...
- python 机器学习多项式回归
现实世界的曲线关系都是通过增加多项式实现的,现在解决多项式回归问题 住房价格样本 样本图像 import matplotlib.font_manager as fm import matplotlib ...
- java 获取指定日前的前一天
/** * @Author: * @Description:更加输入日期,获取输入日期的前一天 * @Date: * @strData:参数格式:yyyy-MM-dd * @return:返回格式:y ...