Docker安装Jenkins打包SpringBoot应用为Docker镜像+Gitee实现代码自动化构建

  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。在实际开发中,我们经常要一边开发一边提交测试,如果每次部署项目都需要人为的执行maven打包命令->上传jar包到服务器->执行java -jar 等启动命令的话,无形的在增加项目的开发成本,而通过Jenkkins来简化这一过程还是很有必要的,所以本文将带领大家如何通过docker来安装Jenkins、如何通过Jenkins打包docker镜像并运行起来。

准备工作

安装JDK11

创建Java目录

mkdir /usr/local/jdk-11

解压到Java目录 命令:tar -zxvf 《压缩包名》

安装Maven

配置Maven加速镜像地址和本地仓库目录

创建maven仓库目录

mkdir -p /usr/local/maven/localRepository

编辑配置文件

vim /usr/local/maven/conf/settings.xml
<localRepository>/usr/local/maven/localRepository</localRepository>
  <mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

Docker安装Jenkins最新版

安装Jenkins

#创建jenkins_home数据挂载目录
mkdir /usr/local/jenkins_home
#赋值权限,否则后面会写入失败,这里我们给最高权限
chmod -R 777 /usr/local/jenkins_home /usr/local/maven/localRepository
#拉取jenkins镜像
docker pull jenkins/jenkins:lts
#启动jenkins容器
docker run -d --name=jenkins -p 8080:8080 --privileged=true \
-v /usr/local/jenkins_home:/var/jenkins_home \
-v /usr/local/jdk-11:/usr/local/jdk-11 \
-v /usr/local/maven:/usr/local/maven \
-v $(which docker):/usr/bin/docker \
-v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
#授予docker的操作权限给jenkins等容器使用
chmod a+rw /var/run/docker.sock
注意:/var/run/docker.sock 系统重启后就没有权限了,再次执行chmod a+rw /var/run/docker.sock即可

配置Jenkins

ip+端口进入Jenkins首页,密码日志会打印,命令:docker logs -f jenkins

安装jenkins推荐插件

一系列傻瓜操作后来到

 JDK配置

 Git就自动安装

Maven配置

保存

新建一个boot项目

Dockerfile

FROM openjdk:8-jre
ENV TZ Asia/Shanghai
COPY target/test-1.0.0.jar app.jar
ENTRYPOINT ["java","-Xms256m","-Xmx512m","-jar","app.jar"]

上传到Gitee

去下载Gitee插件

安装好了重启

配置Gitee

开始新建任务

clean package

 脚本内容

#!/bin/bash
container_name="test"
if [ "$(docker ps -aqf "name=$container_name")" ]; then
  if [ "$(docker inspect --format '{{ .State.Running }}' $container_name)" = "true" ]; then
    echo "容器 $container_name 正在运行..."
    # 停止容器
    docker stop $container_name
    # 删除容器
    docker rm $container_name
  else
    echo "容器 $container_name 未运行"
    # 删除容器
    docker rm $container_name
  fi
else
  echo "容器 $container_name 不存在"
fi
# 拉取最新镜像
docker pull xnj.com:800/common/test
# 运行镜像
docker run -d -p 8888:8888 --name test xnj.com:800/common/test

Gitee添加WebHook,URL和密码前面有

测试一下看看

 

 访问一下测试

更改一下代码提交

 完事

posted @ 2023-04-27 03:34  依笑  阅读(325)  评论(0编辑  收藏  举报