docker搭建Jenkins部署SpringBoot项目并生成容器镜像运行

前言

需要提前准备的条件

  1. Linux服务器
  2. 宝塔面板
  3. Maven环境
  4. Docker环境
  5. JDK环境

步骤

  1. 在Linux服务器上安装宝塔面板
  2. 通过宝塔面板安装docker
  3. docker拉取Jenkins镜像
  4. 运行Jenkins并安装相关插件创建项目
  5. 配置运行脚本

一、在Linux服务器上安装宝塔面板

宝塔面板下载,免费全能的服务器运维软件

 服务器安装宝塔面板,成功之后会返回访问地址以及账号密码,如果不小心关掉了可以在服务器上通过shell连接工具连接 成功后输入 bt 操作面板

二、通过宝塔面板安装docker

进入宝塔页面之后点击左侧docker直接安装docker

 

 三、docker拉取Jenkins镜像

#查询镜像
docker search jenkins

 我使用的是第二个镜像(因为第一个镜像的docker版本较低) 

#下载镜像
docker pull jenkins/jenkins

下载完成之后通过命令查看镜像

#查看镜像
docker images

接下来就启动Jenkins容器,首先创建挂载文件夹,并且进行文件权限授予

#创建文件夹
mkdir -p /home/jenkins_home
#权限
chmod 777 /home/jenkins_home

运行容器

docker run -d -uroot -p 8080:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
命令 描述
-d 后台运行容器,并返回容器ID
-uroot 使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误
-p 8080:8080 将容器内8080端口映射至宿主机8080端口,这个是访问jenkins的端口
-p 50000:50000 将容器内50000端口映射至宿主机50000端口
--name jenkins 设置容器名称为jenkins
-v /home/jenkins_home:/var/jenkins_home :/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置
jenkins/jenkins 镜像的名称,这里也可以写镜像ID
#日志查看
docker logs jenkins

也可以在宝塔面板查看

 四、运行Jenkins并安装相关插件创建项目

安装成功后,在浏览器中输入 http://你的服务器ip:8080 就可以访问了。

这里密码就输入刚才启动日志里边的密码

 

这里选择“安装推荐的插件”即可 

 

安装完成之后这里可以直接使用“admin”账号,也可以创建一个账号 

进入Jenkins之后,我们先安装需要的插件

 在可选插件中,依次搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 三个插件,搜索完成后,点击 Install without restart

 安装完成后在服务器上执行 docker restart jenkins 重启jenkins,有的插件需要重启之后才会生效。或者直接在宝塔面板上操作重启

进行Jenkins的各种配置

1.首先配置一下JDK

 配置服务器中jdk的位置,如果是全局安装,这里JDK不配也可以

2.配置maven

maven选择合适的版本使用自动安装即可

3.配置Git(这里Git默认就好了)

 

所有基本环境都配置完成,点击底部保存按钮即可

进入系统配置

1.Gitee配置

 这里需要添加Gitee API 令牌

点击添加之后这里选择Gitee API 令牌 

浏览器搜索这个地址跳转到自己的Gitee仓库去获取令牌 

配置完成后点击测试是否成功

 2.配置服务器相关内容

 这里输入服务器的密码

配置完成同样进行测试,看是否连接成功 

都没问题就点击保存

接下来就是创建服务了

 1.选择最大构建个数和构建持续天数(防止占用服务器磁盘过多)

 2.Git配置

3.构建环境勾上 Add timestamps to the Console Output ,可以看下打印的过程

 

4.接下来输入项目构建命令,将来 Jenkins 从 Gitee 上拉取代码下来之后,就执行该命令对项目进行打包

 

5.通过一开始安装的Publish Over SSH 工具,去发送一个文件或者执行一个命令

 .

 在这里插入图片描述

 五、配置运行脚本

 创建一个sh文件,就是上边配置的将要执行的脚本文件

#!/bin/bash
# 服务名称
SERVER_NAME=fishing_planet
# 源jar名称,mvn打包之后,target目录下的jar包名称
JAR_NAME=ruoyi-admin.jar
# jenkins下的目录
JENKINS_HOME=/home/jenkins_home/workspace/fishing_planet/ruoyi-admin
# 等待三秒
echo sleep 3s
sleep 3
echo "结束进程完成"
cd $JENKINS_HOME/target
cp $JENKINS_HOME/Dockerfile $JENKINS_HOME/target
# 修改文件权限
chmod 755 JAR_NAME
echo "看看docker能不能用"
docker -v
echo "停止容器"
# 停止容器
docker stop fishing_planet
echo "删除容器"
# 删除容器
docker rm fishing_planet
echo "删除镜像"
# 删除镜像
docker rmi fishing_planet
echo "打包镜像"
# 打包镜像
docker build -t fishing_planet .
echo "运行镜像"
# 运行镜像,这里的3070是项目服务端口
docker run -d -p 3070:3070 --name fishing_planet fishing_planet


另外还需要一个重要的东西Dockerfile

FROM openjdk:8
ADD *.jar /app.jar
RUN bash -c 'touch /app.jar' && /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  && echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 1003
VOLUME /logs
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/.urandom", "-jar", "/app.jar"]

 这是我在项目中的存放位置,大家可根据实际情况改一下,sh脚本路径也需要跟着改一下

一切就绪之后点击构建

构建结果

 通过命令查看实时日志

docker logs -f 你的服务镜像名

猜你喜欢

转载自blog.csdn.net/veerpower/article/details/128131605