第一章: 是什么
Docker
Docker是基于Go语言编写, 用于解决运行环境和配置问题的软件容器 , 并方便做持续集成和整体发布的开源容器引擎
Docker详细内容学习
Docker简要内容学习
Jenkins
Jenkins是基于Java语言编写, 用于持续、自动构建/测试软件项目的持续集成(CI)工具
简书大佬讲解的关于Jenkins的教程
Jenkins中文官方文档
GIT
Git是基于C编写, 用于敏捷高效地对项目进行持续集成的分布式版本控制系统
Git简要教程
持续集成(CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。 通俗的说,就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。
第二章: 做什么
开发人员开发代码完成后, 将代码上传到git上面, git hook调用脚本将项目在Jenkins上进行构建. Jenkis构建完成后通过shell脚本将项目通过Docker打包成镜像文件, 通过将镜像文件部署到网站上, 我们就可以下载并运行镜像后直接在网页上面看到开发的成果了. 如下图:
整个流程的核心: Docker与Jenkins的结合
- 通过Docker管理Jenkins资源
- 通过Jenkins创建Docker镜像
第三章: 怎么做
1. 提前准备
- 一台提供Git服务的服务器(也可直接使用github或oschina服务);
- 一台运行Jenkins服务的服务器;
- 一台或若干Docker宿主机服务器;
2. 搭建环境
代码语言:javascript复制# 0. 在安装Jenkins的服务器上提前安装tomcat, maven以及JDK
# 1. 部署安装Jenkins(实际工作中Jenkins,docker,git应该不同服务器中, 但是非工作环境下服务器资源有限,因此安装在一个服务器下)
# a.在tomcat的webapps目录下,放入下载好的Jenkins的war包,下载地址如下(图1)
https://www.jenkins.io/download/
# b.启动tomcat,登陆Jenkins(图2)
http://4host:8080/jenkins/
# c.查看密码,复制密码到图2的管理员密码下, 成功后根据提示创建Jenkins的管理员账号和密码
cat /root/.jenkins/secrets/initialAdminPassword
# 2.搭建Docker宿主机, 安装步骤可见本人docker博客或者官网的安装文档
https://blog.csdn.net/qq_43371556/article/details/102631158
https://docs.docker.com/get-docker/
ps: 也可通过本次尝试的方法,利用yum命令进行直接下载. 步骤如下
a.下载docker
yum install docker
b.指定docker账号,用于专门登录docker
useradd -g docker docker -d /home/docker -s /bin/bash
c.修改账户docker的密码也为docker
echo "docker:docker" | chpasswd
d.创建父目录,该目录用于存放docker脚本,脚本deploy.sh见附件
mkdir /data/dokerfiles/scripts -p
e.赋予该文件夹属主为docker
chown -R docker:docker /data/dockerfiles
chmod x deploy.sh
f.启动docker后,配置docker镜像加速,加速网址 https://www.daocloud.io/mirror#accelerator-doc
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
systemctl daemon-reload
systemctl restart docker
g.重启docker后下载Tomcat镜像
docker pull tomcat
# 3.登录到Jenkins图形化页面( http://ip:8080/jenkins/ )
图1
图2
3. 操作Jenkins
代码语言:javascript复制## 一. 登录到Jenkins后,进行配置
# 1. 进行全局配置, 配置Maven,git,jdk等相关参数,见(图1-4),作用是指定这些软件或者配置文件的位置
# 2. 进行系统配置, 配置Publish over SSH, 作用是通过ssh的作用将项目部署到宿主机上, 如图5
# 3. 配置完成以后, 为了能够创建maven项目需要下载相关插件, 首先查看已安装的插件,安装如下插件(图6,图7)
Git Parameter Plug-In
GIT server Plugin
GitHub Branch Source Plugin
Maven Integration plugin
Publish Over SSH
Subversion Plug-in
GitLab
SSH
## 二. 安装插件
# 4. 安装方式
a. 在安装插件的页面有Updates,Available,Installed,Advanced, 分别代表可更新的,可下载的,已安装的,以及高级配置
b. 点击可下载的,在里面输入需要下载的插件名称 (需要什么就下载什么)
图1
图2
图3
图4
图5
图6
图7
4. 创建项目
代码语言:javascript复制## 一. 选择左侧工具栏, new item,创建maven项目
# 1. 在通用配置中, 配置
a. git参数, 用于将项目通过指定分支构建; string类型参数, 用于后期项目名称的统一定义(图1)
b. 源代码管理, 配置git仓库的url, 发布的分支(图2)
c. 构建后的配置, 配置docker相关参数信息(图3)
## 二. 构建项目
# 1. 在首页项目的name右边,点击倒三角, 选择Build with parameters(图4)
# 2. 构建成功后git/svn上面的项目即可被打包成镜像文件, 我们下载并运行相关镜像文件即可访问项目
图1
图2
图3
图4
图5
图6
- 需要注意的是,在构建项目后,需要根据模块去构建项目, 而不能整体的去构建项目
- 构建成功后,会将项目代码生成docker镜像文件,在docker所在宿主机上下载代码即可运行构建后的项目(而本实战使用了脚本,在构建后会自动的部署项目并运行)