Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境 |
您所在的位置:网站首页 › jenkins调用docker › Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境 |
本文介绍如何通过Jenkins的docker镜像从零开始构建一个基于docker镜像的持续集成环境,包含自动化构建、发布到仓库\并部署上线。 0. 前置条件服务器安装docker,并启动docker swarm 注意docker启动时,需要开启tcp端口 1.Jenkins 安装1.1 命令行启动:安装比较简单,直接运行 docker run -p 8080:8080 -p 50000:50000 -d -v /home/jenkins-home-docker:/var/jenkins_home jenkins/jenkins:lts运行后查看日志,获取token,打开ip:8080,输入token,安装常用插件 1.2 使用swarm集群管理工具在services里,添加服务 ![]() 我们需要一些插件支持 Docker plugin : 提供docker 构建和发布SSH plugin : 提供通过SSH在远程主机执行命令,用于部署服务maven plugin: 支持maven系统管理-插件管理里进行安装即可。 2.1 docker 配置“系统管理-系统设置-云” 里新增 ![]() 注意docker host url需要加上tcp:// 2.2 ssh主机 配置“系统管理-系统设置-SSH remote hosts” 里配置SSH远程主机 ![]() 在系统设置里直接设置,配置下smtp 2.4 配置jdk、maven在系统管理-全局工具配置里设置JDK自动安装 ![]() maven同样配置即可 3.Jenkins 项目配置3.1 新建项目我们是maven项目,选择maven ![]() 首先配置源码,可以是git或者svn,项目组用的是svn ![]() 配置自动构建,勾选POLL SCM,配置5分钟检查一次,当svn发生变化时,会自动启动构建 ![]() 简单的maven项目,构建使用pom.xml,执行package -DskipTests ![]() Post Steps是指构建完成执行的步骤,我们会实现构建docker,发布docker和部署服务 3.5.1 配置docker点击add post-build step,选择Build/publish docker image: ![]() 选择cloud为先前配置的docker-cloud,image填写私服发布地址,勾上push image。 ![]() 这样配置,构建完成后会自动push到私服。 3.5.2 配置远程部署我们使用docker stack来部署服务 首先,编写docker-compose.yml version: "3" services: backend: image: 192.168.86.8:5000/allinone-service-cicd deploy: replicas: 1 restart_policy: condition: on-failure ports: - "8007:8006" networks: - webnet networks: webnet:保存到docker服务器,比如/root/allinone/allinone-service/allinone目录 然后,添加post-build step: ![]() 选择配置好的远程docker主机: ![]() 填入命令: cd /root/allinone/allinone-service/allinone docker stack down allinone-cicd docker stack deploy -c docker-compose.yml allinone-cicddocker stack down 将原先服务下线docker stack deploy -c 重新部署服务4 开始构建4.1 手动构建回到工程,点击立即构建,第一次构建会自动下载jdk,maven,会比较慢 ![]() 等待一会,构建成功: 9e70992ebc17: Pushing [===============================================> ] 42.66MB/45.02MB 9e70992ebc17: Pushing [=================================================> ] 44.96MB/45.02MB 9e70992ebc17: Pushing [==================================================>] 45.02MB 9e70992ebc17: Pushed latest: digest: sha256:5df6c97d6173527bc92ddc436fcef063069cd1cd3d0da8a0c74d2238443ae4d6 size: 1582 Docker Build Done [SSH] script: cd /root/allinone/allinone-service/allinone docker stack down allinone-cicd docker stack deploy -c docker-compose.yml allinone-cicd [SSH] executing... Removing service allinone-cicd_backend Removing network allinone-cicd_webnet Creating network allinone-cicd_webnet Creating service allinone-cicd_backend [SSH] completed [SSH] exit-status: 0 Finished: SUCCESS如果配置了邮件通知,会收到构建成功邮件。 4.2 自动构建SVN提交一个变更,等几分钟,查看Subversion Polling Log,已经有记录了,发现已经自动构建了一个版本 ![]() 完美! 作者:Jadepeng 出处:jqpeng的技术记事本--http://www.cnblogs.com/xiaoqi 您的支持是对博主最大的鼓励,感谢您的认真阅读。 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |