欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > Docker+Jenkins+Gitee自动化项目部署

Docker+Jenkins+Gitee自动化项目部署

2025/11/27 16:55:53 来源:https://blog.csdn.net/lengjunguan/article/details/147072743  浏览:    关键词:Docker+Jenkins+Gitee自动化项目部署

前置条件

docker安装成功
按照下面配置加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://register.librax.org"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

一、拉取Jenkins镜像

docker pull jenkins/jenkins:lts
docker images #查看镜像

二、宿主机安装好maven

  • 命令下载
    wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
  • 官网下载后传到Linux服务器
  • 然后使用命令进行解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz

解压需要解压到这个目录下面 /opt/develop_resource/apache-maven-3.6.3,因为后面再启动jenkins的时候需要挂载在他容器的目录里面

  • 宿主机上的 /opt/develop_resource/apache-maven-3.6.3 目录将会被挂载到 Docker 容器内的/opt/maven/apache-maven-3.6.3 目录上。
  • 如果/opt/maven/apache-maven-3.6.3 在容器内部不存在,Docker 会自动创建这个目录
  • 在容器运行期间,对 /opt/maven/apache-maven-3.6.3 内部所做的任何更改都会反映到宿主机的 /opt/develop_resource/apache-maven-3.6.3 目录中,反之亦然
  • 配置maven镜像加速
    在/opt/develop_resource/apache-maven-3.6.3/conf找到setting文件
    新增配置:
<mirrors><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></mirror></mirrors>

在这里插入图片描述

三、运行启动Jenkins

先在宿主机创建Jenkins的挂载目录

mkdir -p /home/jenkins/workspace

运行启动jenkins命令如下:

docker run -uroot -d --restart=always --privileged=true \-p 10240:8080 -p10241:50000 \-v /home/jenkins/workspace/:/var/jenkins_home/workspace \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr/bin/docker \-v /opt/develop_resource/apache-maven-3.6.3:/opt/maven/apache-maven-3.6.3 \-e MAVEN_HOME=/opt/maven/apache-maven-3.6.3 \-e PATH="/opt/maven/apache-maven-3.6.3/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" \--name jenkins jenkins/jenkins:lts

通过docker ps指令可以查看容器是否启动
在这里插入图片描述
Jenkins启动完整后进入容器查看maven是否配置正确

docker exec -it jenkins bash
mvn -v

在这里插入图片描述
四、浏览器访问Jenkins,ip+10240
注意:首次进入需要获取管理员密码,可以进入Jenkins容器查看

docker exec -it jenkins bash
cat /var/jenkins_home/secrets
这个目录下存了管理员密码

进入后可以新建一个账号,插件可选择性安装,这里略

五、Jenkins后台配置

  1. 配置maven
    在这里插入图片描述

    新增环境变量并保存
    注意这里的路径是根据启动容器来配置的
 M2_HOME  /opt/maven/apache-maven-3.6.3PATH+EXTRA  $M2_HOME/bin
  1. 安装必要的插件
    在这里插入图片描述
    在这里插入图片描述
    搜索框依次搜索并安装
  • gitee使用:Gitee
  • maven 插件:Maven Integration plugin
  • SSH远程连接插件:Publish Over SSH
  1. 配置环境
    在这里插入图片描述
    系统配置里找到gitee
    在这里插入图片描述
    在这里插入图片描述
    令牌获取地址

在这里插入图片描述
4. 配置ssh(还是在上面菜单,往下滑找到这个配置位置)
在这里插入图片描述
在这同时修改服务器密码
在这里插入图片描述
5. tool模块配置maven
在这里插入图片描述
在这里插入图片描述
这里配置的地址与前面配置的保持一致即可
6. 构建任务,新建自动化部署任务
在这里插入图片描述
在这里插入图片描述
选择第一个点击确定并进入任务配置
在这里插入图片描述
在这里插入图片描述

填写gitee仓位地址以及gitee认证信息

在这里插入图片描述
一直滑到最下面然后点击生成按钮 输入框中就会出现密码,将这个密码复制到gitee仓库
在这里插入图片描述
进入gitee代码仓库,将密码填入,
url:
在这里插入图片描述
配置轮询
在这里插入图片描述
7.下一步在添加构建步骤这里选择执行shell

#!/bin/bash
# 退出脚本如果任何一个命令失败
set -e# 删除旧的Docker容器
echo "Removing old container..."
docker rm -f app_docker || true # 忽略错误,以防容器不存在
# 删除旧的Docker镜像
echo "Removing old image..."
docker rmi -f app_docker:1.0 || true # 忽略错误,以防镜像不存在# 构建Java应用程序
# echo "Building Java application..."
mvn clean install -Dmaven.test.skip=true# 构建新的Docker镜像
echo "Building new Docker image..."
docker build -t app_docker:1.0 -f ./src/main/docker/Dockerfile .# 运行新的Docker容器
echo "Running new Docker container..."
docker run -d -p 8080:8080 --name app_docker app_docker:1.0echo "Application is now running."

这里在贴上项目的dockerfile

# 指定是基于哪个基础镜像
#FROM java:8
#FROM registry.cn-hangzhou.aliyuncs.com/library/java:8-jdk
FROM eclipse-temurin:8-jdk# 作者信息
MAINTAINER demo# 挂载点声明
VOLUME /tmp# 将本地的一个文件或目录,拷贝到容器的文件或目录里
ADD /target/demoProject-2.6.13.jar springboot.jar#shell脚本
RUN bash -c 'touch /springboot.jar'# 将容器的8080端口暴露,给外部访问。
EXPOSE 8080# 当容器运行起来时执行使用运行jar的指令
ENTRYPOINT ["java", "-jar", "springboot.jar"]#ENTRYPOINT ["java", "-jar", "/springboot.jar", "--spring.profiles.active=prod"]

改完之后通过git命令上传到gitee上面后,jenkins会自动的进行构建
在这里插入图片描述
最后成功了!!!
需要注意的是我暴露的端口是8080
这里shell命令中挂载的端口和dockerfile中暴露端口要一致才能进行

启动成功后查看docker进程
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词