Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学相关的知识,希望能为你提供帮助。
一、前言Jenkins作为CI、CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。
最终版就是:通过git上传代码---> 使用Jenkins构建自动打包---> 把jar包打成docker镜像,运行在docker中,Windows下进行访问
主要记录一下一些踩过的坑和注意点,让后来人能够跟着小编一次完成!!
二、安装Docker安装Docker
三、linux安装jdk和maven 1、下载JDK8Linux版本
2、下载Maven
maven3.8.5下载链接
3、使用xftp上传到linux上

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

4、解压
解压maven
tar -zxvf apache-maven-3.8.5-bin.tar.gz

重命名maven
mv apache-maven-3.8.5-bin.tar.gz apache-maven-3.8.5

【Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学】解压jdk
tar -zxvf jdk-8u333-linux-x64.tar.gz

重命名jdk
mv jdk-8u333-linux-x64.tar.gz jdk1.8

5、配置环境变量
进入环境变量文件
vim /etc/profile

添加jdk和manven配置
输入i,进入输入模式
注意自己的安装目录,放在文件最上面就行
java_HOME=/usr/local/java/jdk1.8 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH export MAVEN_HOME=/usr/local/java/apache-maven-3.8.5 export PATH=$MAVEN_HOME/bin:$PATH

按下esc ,输入:wq保存退出。
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

查看是否安装成功
java -version

mvn -v

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

6、配置Maven加速镜像
cd apache-maven-3.8.5/conf/

vim settings.xml

输入i,进入输入模式
< mirrors> < mirror> < id> alimaven< /id> < name> aliyun maven< /name> < url> http://maven.aliyun.com/nexus/content/groups/public/< /url> < mirrorOf> central< /mirrorOf> < /mirror> < /mirrors>

按下esc ,输入:wq保存退出。
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

四、Docker安装Jenkins 1.准备挂载目录
cd home/

mkdir jenkins_home

一定要赋予修改权限,不然挂载会失败,我们这里给最高权限。
chmod -R 777 jenkins_home

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

2. 执行docker命令
docker run -di --name=myjenkins -p 8080:8080 -v /home/jenkins_home:/var/jenkins_home \\ -v /usr/local/java/jdk:/usr/local/jdk1.8 \\ -v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5 \\ -v $(which docker):/usr/bin/docker \\ -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts

-v /home/jenkins_home:/var/jenkins_home:是对容器内存储Jenkins的一些配置信息的文件夹
-v /usr/local/java/jdk:/usr/local/jdk1.8:是把linux下的jdk和容器内的关联(配置Jenkins时使用)
-v /usr/local/java/apache-maven-3.8.5:/usr/local/apache-maven-3.8.5:是把linux下的maven和容器内的关联(配置Jenkins时使用)
-v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock:是可以在Jenkins容器里使用我们Linux下的docker。
五、配置Jenkins 1. 进入Jenkins
输入:http://192.168.84.133:8080/(ip+端口号)
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

2. 获取密码
docker logs 容器id

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

3. 安装插件
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

4. 创建用户
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

5. 保存配置地址
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

6. 配置插件镜像
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

输入:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
点击提交
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

7. 安装ssh插件
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

==安装完成重启一下Jenkins==
8. 添加ssh登录账号凭据
点击系统管理,找到下图点击
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

9. 配置全局ssh
点击系统管理,找到系统配置
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

点击新增:
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

点击保存:
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

10. 配置jdk和maven
点击系统管理,找到全局工具配置
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

点击保存
六、准备Springboot项目到git 1. 核心代码
我们看到只是一个请求打印,我们最后访问有docker成功,代表我们构建发包成功!
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

2. pom内容
< build> < plugins> < plugin> < groupId> org.springframework.boot< /groupId> < artifactId> spring-boot-maven-plugin< /artifactId> < executions> < execution> < goals> < goal> repackage< /goal> < /goals> < /execution> < /executions> < configuration> < includeSystemScope> true< /includeSystemScope> < /configuration> < /plugin> < /plugins> < /build>

3. yml文件
这里只指定了端口号
server.port=8081

4. Dockerfile
==和pom文件同级==
FROM java:8COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java", "-jar", "/app.jar"]

5. 上传git仓库
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

七、使用Jenkins部署项目 1. 新建任务
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

2. 添加git凭据
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

==选择刚刚添加的凭据报错信息消失==
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

3. 添加maven构建
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

4. 增加构建执行shell
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

shell脚本:
#!/bin/bash # 服务名称 SERVER_NAME=jenkins# 源jar名称,mvn打包之后,target目录下的jar包名称 JAR_NAME=demo-0.0.1-SNAPSHOT# jenkins下的目录 JENKINS_HOME=/var/jenkins_home/workspace/jenkins# 等待三秒 echo sleep 3s sleep 1 echo sleep 2s sleep 1 echo sleep 1s sleep 1echo "结束进程完成"cd $JENKINS_HOME/targetcp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target# 修改文件权限 chmod 755 $JAR_NAME.jarecho "看看docker能不能用" docker -vecho "停止容器" # 停止容器 docker stop springbootecho "删除容器" # 删除容器 docker rm springboot echo "删除镜像" # 删除镜像 docker rmi springboot echo "打包镜像" # 打包镜像 docker build -t springboot . echo "运行镜像" # 运行镜像 docker run -d -p 8081:8081 --name springboot springboot

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

5. 立即构建
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

6. 控制台输出报错
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

我们看到打包成功了,就是在使用docker命令的时候出现权限问题,这是我们要给docker.sock权限就可以解决了!!
报错信息:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/springboot/stop": dial unix /var/run/docker.sock: connect: permission denied

==解决方案:==
chmod a+rw /var/run/docker.sock

7.在次构建
我们发现没有报错,也看到了容器的id
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

8. 查询docker镜像是否启动
docker images

docker ps

Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

9. Win10进行访问测试
输入地址:http://192.168.84.133:8081/test/docker
Docker安装Jenkins打包Maven项目为Docker镜像并运行保姆级图文教学

文章图片

七、总结小编断断续续研究了一星期,太不容易了,中间也是遇到很多坑,只要是跟着小编走下去的基本都可以跑出来的!
看到这里还不给小编一键三连起来!!谢谢大家了哦~
有缘人才可以看得到的哦!!!
点击访问!小编自己的网站,里面也是有很多好的文章哦!

    推荐阅读