Docker学习笔记(九):Docker +Jenkins +Github持续集成

本次配置时,jenkins需要配置在外网可访问的服务器上,因为在git push内容到github时,触发Webhooks并推送到jenkins服务器上。

 

1. 配置Github(通过秘钥登录)

生成秘钥:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第1张图片

在github设置密钥(公钥):

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第2张图片

将公钥 id_rsa.pub里的内容填入如下 Key中,Title可任意取。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第3张图片

检查是否key值配置成功,使用key值的方式进行clone,如下:

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第4张图片

 

设置带权限的access_token

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第5张图片

生成token的秘钥

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第6张图片

 

2. 配置Jenkins

Jenkins安装参考博客。

安装git、github插件(系统管理 --> 插件管理)

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第7张图片

配置系统环境(系统管理 --> 系统设置)

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第8张图片

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第9张图片

添加token密钥:

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第10张图片

其中下面的 Secret中的值为配置 Personal access tokens生成的 token秘钥。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第11张图片

下面 secret text为上面的描述, Test connection用来测试验证是否通过。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第12张图片

 

3. Job配置

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第13张图片

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第14张图片

点击Add 添加验证。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第15张图片

root为我服务器使用的用户名,大家可以根据自己的实际情况配置,Private Key 可以如下获取。记住需要在github上传服务的公钥。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第16张图片

继续配置。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第17张图片

 

4. 容器配置

4.1 更改主机系统配置(jenkins服务器上配置)

常见错误一:sudo: sorry, you must have a tty to run sudo

解决方法:#Default requrrity(文件路径:/etc/sudoers,如果文件中没有这个就不用理会)

 

常见错误二:sudo: no tty present and no askpass program specified

解决方法:jenkins ALL = NOPASSWD: /usr/bin/docker,/usr/bin/chown,/usr/bin/mv

 

4.2 挂载目录

# 存储路径
SAVE_PATH=/tmp/job_files

# 保存的文件名称
FILE_NAME=`date "+%Y%m%d"`_${BUILD_NUMBER}.jar

# 进入工作空间
echo "workspace==========${WORKSPACE}"

# mvn编译
# cd ${WORKSPACE}
# mvn clean install
# -f为指定pom文件
# --rm在编译完后将容器删除,节省空间
sudo docker run --rm --name my-maven-project -v ${WORKSPACE}:${WORKSPACE} maven:3.5-jdk-7 mvn clean install -f ${WORKSPACE}/pom.xml

# 保存文件
sudo mv target/*.jar $SAVE_PATH/$FILE_NAME

# 执行jar包并且验证
java -cp $SAVE_PATH/$FILE_NAME com.mycompany.helloworld.App

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第18张图片

 

4.3 push提交触发Webhooks

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第19张图片

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第20张图片

触发Webhooks后推送到Jenkins服务器进行构建,运行成功。

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第21张图片

Docker学习笔记(九):Docker +Jenkins +Github持续集成_第22张图片

注意:因为容器每次执行后都会销毁,没有设置maven的缓冲目录,这样导致每次容器运行时都需要实时下载依赖,速度会慢一些,为此可以将本地的maven仓库与容器中的maven仓库绑定起来,这样会大大加快容器运行的速度。

 

 

 

 

你可能感兴趣的:(【Docker学习笔记】,【Docker初识,进阶与实战】)