前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker安装Jenkins打包Maven项目为Docker镜像并运行

Docker安装Jenkins打包Maven项目为Docker镜像并运行

作者头像
掉发的小王
发布2022-07-11 16:15:59
1.4K0
发布2022-07-11 16:15:59
举报
文章被收录于专栏:小王知识分享

一、前言

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

代码语言:javascript
复制
tar -zxvf apache-maven-3.8.5-bin.tar.gz

重命名maven

代码语言:javascript
复制
mv apache-maven-3.8.5-bin.tar.gz apache-maven-3.8.5

解压jdk

代码语言:javascript
复制
tar -zxvf jdk-8u333-linux-x64.tar.gz

重命名jdk

代码语言:javascript
复制
mv jdk-8u333-linux-x64.tar.gz jdk1.8

5、配置环境变量

进入环境变量文件

代码语言:javascript
复制
vim /etc/profile

添加jdk和manven配置 输入i,进入输入模式

注意自己的安装目录,放在文件最上面就行

代码语言:javascript
复制
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保存退出。

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

查看是否安装成功

代码语言:javascript
复制
java -version
代码语言:javascript
复制
mvn -v
在这里插入图片描述
在这里插入图片描述

6、配置Maven加速镜像

代码语言:javascript
复制
cd apache-maven-3.8.5/conf/
代码语言:javascript
复制
vim settings.xml

输入i,进入输入模式

代码语言:javascript
复制
<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.准备挂载目录

代码语言:javascript
复制
cd home/
代码语言:javascript
复制
mkdir jenkins_home

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

代码语言:javascript
复制
chmod -R 777 jenkins_home
在这里插入图片描述
在这里插入图片描述

2. 执行docker命令

代码语言:javascript
复制
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. 获取密码

代码语言:javascript
复制
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内容

代码语言:javascript
复制
<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文件

这里只指定了端口号

代码语言:javascript
复制
server.port=8081

4. Dockerfile

==和pom文件同级==

代码语言:javascript
复制
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脚本:

代码语言:javascript
复制
#!/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权限就可以解决了!!

报错信息:

代码语言:javascript
复制
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

==解决方案:==

代码语言:javascript
复制
chmod a+rw /var/run/docker.sock

7.在次构建

我们发现没有报错,也看到了容器的id

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

8. 查询docker镜像是否启动

代码语言:javascript
复制
docker images
代码语言:javascript
复制
docker ps
在这里插入图片描述
在这里插入图片描述

9. Win10进行访问测试

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

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

七、总结

小编断断续续研究了一星期,太不容易了,中间也是遇到很多坑,只要是跟着小编走下去的基本都可以跑出来的!

Q.E.D.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、安装Docker
  • 三、linux安装jdk和maven
    • 1、下载JDK8Linux版本
      • 2、下载Maven
        • 3、使用xftp上传到linux上
          • 4、解压
            • 5、配置环境变量
              • 6、配置Maven加速镜像
              • 四、Docker安装Jenkins
                • 1.准备挂载目录
                  • 2. 执行docker命令
                  • 五、配置Jenkins
                    • 1. 进入Jenkins
                      • 2. 获取密码
                        • 3. 安装插件
                          • 4. 创建用户
                            • 5. 保存配置地址
                              • 6. 配置插件镜像
                                • 7. 安装ssh插件
                                  • 8. 添加ssh登录账号凭据
                                    • 9. 配置全局ssh
                                      • 10. 配置jdk和maven
                                      • 六、准备Springboot项目到git
                                        • 1. 核心代码
                                          • 2. pom内容
                                            • 3. yml文件
                                              • 4. Dockerfile
                                                • 5. 上传git仓库
                                                • 七、使用Jenkins部署项目
                                                  • 1. 新建任务
                                                    • 2. 添加git凭据
                                                      • 3. 添加maven构建
                                                        • 4. 增加构建执行shell
                                                          • 5. 立即构建
                                                            • 6. 控制台输出报错
                                                              • 7.在次构建
                                                                • 8. 查询docker镜像是否启动
                                                                  • 9. Win10进行访问测试
                                                                  • 七、总结
                                                                  相关产品与服务
                                                                  容器镜像服务
                                                                  容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                                                                  领券
                                                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档