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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、前言

Jenkins作为CI、CD的先驱者虽然现在的风头没有Gitlab强了但是还是老当益壮很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包感觉还不错所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins小编经过一个星期的探索终于完成了在docker中进行搭建。

最终版就是通过git上传代码—>使用Jenkins构建自动打包—>把jar包打成docker镜像运行在docker中Windows下进行访问

主要记录一下一些踩过的坑和注意点让后来人能够跟着小编一次完成

二、安装Docker

安装Docker

三、linux安装jdk和maven

1、下载JDK8Linux版本

官网下载太慢了小编这里为大家下载好了

链接百度网盘地址
提取码ov24

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
在这里插入图片描述

七、总结

小编断断续续研究了一星期太不容易了中间也是遇到很多坑只要是跟着小编走下去的基本都可以跑出来的
看到这里还不给小编一键三连起来谢谢大家了哦~


有缘人才可以看得到的哦

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker

“Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_jenkins打包docker镜像” 的相关文章