5

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

 1 year ago
source link: https://blog.51cto.com/wangzhenjun/5373487
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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镜像并运行【保姆级图文教学】_插入图片

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

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

查看是否安装成功

java -version
mvn -v
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_插入图片_03

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镜像并运行【保姆级图文教学】_插入图片_04

四、Docker安装Jenkins

1.准备挂载目录

cd home/
mkdir jenkins_home

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

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

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镜像并运行【保姆级图文教学】_maven_06

2. 获取密码

docker logs 容器id
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_插入图片_07
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_插入图片_08
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_maven_09

3. 安装插件

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

4. 创建用户

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

5. 保存配置地址

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

6. 配置插件镜像

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

输入:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

点击提交

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

7. 安装ssh插件

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

安装完成重启一下Jenkins

8. 添加ssh登录账号凭据

点击系统管理,找到下图点击
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_插入图片_19

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

9. 配置全局ssh

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

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

点击新增:

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

点击保存:

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

10. 配置jdk和maven

点击系统管理,找到全局工具配置

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

点击保存

六、准备Springboot项目到git

1. 核心代码

我们看到只是一个请求打印,我们最后访问有docker成功,代表我们构建发包成功!

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

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仓库

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

七、使用Jenkins部署项目

1. 新建任务

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

2. 添加git凭据

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

选择刚刚添加的凭据报错信息消失

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

3. 添加maven构建

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

4. 增加构建执行shell

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

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
Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】_maven_37

5. 立即构建

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

6. 控制台输出报错

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

我们看到打包成功了,就是在使用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镜像并运行【保姆级图文教学】_docker_40

8. 查询docker镜像是否启动

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

9. Win10进行访问测试

输入地址:http://192.168.84.133:8081/test/docker

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

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


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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK