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

Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】Jenkins 作为 CI CD 的先驱者 虽然现在的风头没有 Gitlab 强了 但是还是老当益壮 很多中小公司还是使用比较广泛的 最近小编经历了一次 Jenkins 发包 感觉还不错 所以自己学习了一下 网上比较多的教程都是在 Linux 上搭建 Jenkins 小编经过一个星期的探索终于完成了在 docker 中进行搭建 最终版就是 通过 git 上传代码 使用 Jenkins 构建自动打包 把 jar 包打成 docker 镜像 运行在 docker 中 Windows 下进行访问主要记录一下一些踩过的坑和注意点 让后来人能够跟着小编一次完

一、前言

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上

在这里插入图片描述

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 

解压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保存退出。

在这里插入图片描述

查看是否安装成功

java -version 
mvn -v 

在这里插入图片描述

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

1.准备挂载目录

cd home/ 
mkdir jenkins_home 

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

chmod -R 777 jenkins_home 

在这里插入图片描述

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+端口号)
在这里插入图片描述

2. 获取密码

docker logs 容器id 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




3. 安装插件

在这里插入图片描述
在这里插入图片描述

4. 创建用户

在这里插入图片描述

5. 保存配置地址

在这里插入图片描述

6. 配置插件镜像

在这里插入图片描述
在这里插入图片描述
输入:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json




7. 安装ssh插件

在这里插入图片描述
安装完成重启一下Jenkins

8. 添加ssh登录账号凭据

点击系统管理,找到下图点击
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述






9. 配置全局ssh

点击系统管理,找到系统配置

在这里插入图片描述
点击新增:

在这里插入图片描述
点击保存:
在这里插入图片描述




10. 配置jdk和maven

点击系统管理,找到全局工具配置
在这里插入图片描述

在这里插入图片描述
点击保存

六、准备Springboot项目到git

1. 核心代码

我们看到只是一个请求打印,我们最后访问有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:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"] 

5. 上传git仓库

在这里插入图片描述

七、使用Jenkins部署项目

1. 新建任务

在这里插入图片描述
在这里插入图片描述

2. 添加git凭据

在这里插入图片描述
在这里插入图片描述
选择刚刚添加的凭据报错信息消失
在这里插入图片描述






3. 添加maven构建

在这里插入图片描述
在这里插入图片描述

4. 增加构建执行shell

在这里插入图片描述
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 1 echo "结束进程完成" cd $JENKINS_HOME/target cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target # 修改文件权限 chmod 755 $JAR_NAME.jar echo "看看docker能不能用" docker -v echo "停止容器" # 停止容器 docker stop springboot echo "删除容器" # 删除容器 docker rm springboot echo "删除镜像" # 删除镜像 docker rmi springboot echo "打包镜像" # 打包镜像 docker build -t springboot . echo "运行镜像" # 运行镜像 docker run -d -p 8081:8081 --name springboot springboot 

在这里插入图片描述

5. 立即构建

在这里插入图片描述

6. 控制台输出报错

在这里插入图片描述
我们看到打包成功了,就是在使用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

在这里插入图片描述

8. 查询docker镜像是否启动

docker images 
docker ps 

在这里插入图片描述

9. Win10进行访问测试

输入地址:http://192.168.84.133:8081/test/docker
在这里插入图片描述

七、总结


有缘人才可以看得到的哦!!!

点击访问!小编自己的网站,里面也是有很多好的文章哦!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211395.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:32
下一篇 2026年3月18日 下午10:32


相关推荐

  • docker里镜像用ipv6无法访问_虚拟服务器端口设置

    docker里镜像用ipv6无法访问_虚拟服务器端口设置前言我有一个朋友,他在Dev和Test服务器用Docker搭建了Redis供项目使用,然后今天Test环境的Redis端口访问不通了,在服务上可以正常连接,真是离了个大齐,让我们试试排查排查问题;正文端口检测lsof已确认在本地用telnetip6381访问不通,那就上服务上看看端口情况DevTestDev环境同时映射到Ipv6和Ipv4端口,Test环境仅映射到Ipv6,那基本上就可以断定是环境问题了容器状态dockerps既然端口映射

    2022年8月31日
    7
  • Docker安装Jenkins教程

    Docker安装Jenkins教程Docker安装Jenkins教程前言一、安装Jenkins1.下载Jenkins2.创建Jenkins挂载目录并授予权限3.启动Jenkins容器4.验证Jenkins容器是否启动二、浏览器访问Jenkins页面1.输入http://192.168.XX.XX:102402.获取管理员密码前言Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。提示:如果没有安装Docker,传送门在这里:链接:

    2022年5月15日
    34
  • pve安装docker图形化_怎么安装docker

    pve安装docker图形化_怎么安装docker基本相当于转载,但我光贴图也不行啊,还是把步骤加上去年年底这NUC到手时,就装PVE练手,然而最后做主力挂机的是那会买的个1037U小主机当时就尝试过装LibreELEC,结果是接显示器黑屏不过后来我直接在宿主机上装桌面和Kodi,但是吧那源里的Kodi是17的对于x265是软解。。。怎么装当然是看的值得买上的这个人家是OMV咱这是PVE都是装桌面再装KODI,但是为了保持纯净的PVE所以才想直通…

    2025年6月23日
    3
  • docker 上传本地镜像_不同docker仓库镜像同步

    docker 上传本地镜像_不同docker仓库镜像同步前言之前通过docker搭建过jenkins+python3环境,如果想要在不同的机器上搭建一样的环境,就可以将之前搭建的镜像上传到镜像仓库,这样方便在不同的机器上快速搭建同一套环境。如果公开的话

    2022年7月29日
    21
  • 卸载docker命令_删除docker0虚拟网卡

    卸载docker命令_删除docker0虚拟网卡#!/bin/shecho”startuninstallingdocker”echo”=======================================”#停止docker服务sudosystemctlstopdocker#杀死docker进程(为防止特殊情况下有残留的docker进程)#ps-ef|grepdocker|awk'{print$2}’|xargssudokill-s9#删除执行状态文件的根目录sudo…

    2025年10月7日
    8
  • docker容器的启动(docker容器启动时间)

    在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。1、attach命令attach命令是Docker自带的命令,命令格式为:dockerattach[–detach-keys[=[]]][–no-stdin][–sig-prox

    2022年4月15日
    197

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号