当前位置: 首页 > news >正文

Docker部署jenkins集成全自动打包部署

下载jekins

docker pull jenkins/jenkins:lts

# 使用Docker卷(自动管理权限)

docker volume create jenkins_home

              安装 Jenkins服务

# 手动创建主机目录(需设置权限)

mkdir /mnt/jenkins_home

mkdir /mnt/jenkins_home/logs

#授权文件夹

chmod 777 /mnt/jenkins_home 

chmod 777 /mnt/jenkins_home/logs 

运行 Jenkins 对外暴露 9090 接口作为 web页面  挂载 mnt下 实体数据服务

注释{

-d: 后台运行容器。
--name: 容器名称。
-p 9090:8080: 映射Web界面端口。
-p 50099:50000: 供Jenkins Agent连接的端口。
-v: 数据卷挂载,确保数据持久化。

}

docker run -d --name jenkins  -p 9090:8080 -p 50000:50000   -v /mnt/jenkins_home:/var/jenkins_home -v /mnt/jenkins_home/logs:/var/log/jenkins  --restart always  --add-host=master:172.18.0.199    jenkins/jenkins:lts

开放 9090 端口 可以对外访问

# 永久开放9090端口

sudo firewall-cmd --zone=public --add-port=9090/tcp –permanent

# 刷新防火墙 开放端口的配置

sudo firewall-cmd --reload

docker logs jenkins  # 在日志中查找密码 
# 或直接从容器中读取
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

vim /mydata/jenkins/jenkins_home/hudson.model.UpdateCenter.xml

# 内部输入如下内容

<?xml version='1.1' encoding='UTF-8'?>

<sites>

  <site>

    <id>default</id>

    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

  </site>

</sites>

apt install -y wget
apt install -y vim

下载maven

wget  https://downloads.apache.org/maven/maven-3/3.8.9/binaries/apache-maven-3.8.9-bin.tar.gz

解压

tar -xzvf apache-maven-3.8.9-bin.tar.gz -C /opt/

mv /opt/apache-maven-3.8.9 /opt/maven

# 编辑settings.xml  里面的mirror标签的maven镜像地址为阿里云的
vim  /opt/maven /conf/settings.xml

<mirror></mirror>   包括的东西 放在 <mirrors></mirrors> 内

<mirror>

      <id>nexus-aliyun</id>

      <name>Nexus aliyun</name>

      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

      <mirrorOf>central</mirrorOf>

  </mirror>

echo "export M2_HOME=/opt/maven" >> ~/.bashrc

echo "export PATH=\$M2_HOME/bin:\$PATH" >> ~/.bashrc

source ~/.bashrc

# 验证安装

mvn -version

安装git

apt install git

因为我这个项目是 jdk8  如果 有更高级别的话 可以选择默认的jdk21 或者 17 搜索一下命令就出来了

安装jdk 8

把文件从linux复制到docker容器中

docker cp /mnt/jdk-8u301-linux-x64.tar.gz jenkins:/opt

解压命令

tar -xzvf jdk-8u301-linux-x64.tar.gz -C /opt/

安装gitee插件

 安装maven插件

  继续搜索 并安装 下面两个插件

安装远程连接服务插件:Publish Over SSH

 

安装发布插件:Deploy to container

进入配置页面

Jdk 配置 页面  名字随便填写  但是 地址 一定要填写刚刚 jdk8的地址

配置 maven

配置git

配置完记得点保存

配置需要发布到哪一个服务器进行部署的远程服务器地址和账号密码

找到系统管理 -> 系统配置进入页面,找到publish over SSH

新建项目

配置 git 上传代码之后 自动打包的构造器

这里以gitee为例

输入远程地址和密码之后 保存

配置一下 服务器的信息  但是 新版并不用写信息 是需要 选择你之前 在全局里面配置的 服务器即可

触发器出发后 就可以 自动构建

可以通过控制台输出看是否报错以及打包是否成功

构造后操作 就相当于 打完包之后 干什么
打完包之后 选择服务器信息 登录 服务器 
然后执行 Exec command 命令  这里我放的是 sh可执行文件

start.sh  执行文件 内容

#构建jdk 环境

export JAVA_HOME=/www/server/java/jdk1.8.0_371

export PATH=$JAVA_HOME/bin:$PATH

source ~/.bashrc

#强制删除原有的包

rm -f /home/yznf/zhny2-admin.jar

#把打好的jar包复制出来

cp -f /mnt/jenkins_home/workspace/yznf/zhny-admin/target/zhny2-admin.jar /home/yznf/zhny2-admin.jar

#暂停几秒 怕复制的慢

sleep 5

#清理一下 docker 的容器 强制删除容器命令

docker rm -f zhdk

#清理一下 docker 的镜像

docker rmi zhdk

#切换dockerfile 文件所在的目录 准备将 jar包 打成镜像

cd ../home/yznf/

#执行 dockerfile 文件 打包镜像

docker build -t zhdk .

#docker服务 运行命令

docker run -d --name zhdk -p 9696:8388  --restart always --add-host=master:172.17.0.198 -v /home/yznf:/User/logs --privileged -e TZ="Asia/Shanghai" zhdk

dockerfile 文件内容

# 使用OpenJDK作为基础镜像

FROM openjdk:8

# 将 JAR 文件复制到容器中

COPY ./you.jar /app/ 

# 运行 JAR 文件

CMD ["java", "-jar", "/app/you.jar"]

http://www.dtcms.com/a/482759.html

相关文章:

  • 台州自助建站公司做好的网站怎么发布
  • 重磅更新:Claude Code 现在支持插件啦
  • 23种设计模式——访问者模式 (Visitor Pattern)
  • 卧龙区微网站开发网络管理系统怎么打开
  • java用注解优雅校验入参
  • 平台网站建设收费制作网页素材图片
  • 基于OpenCV的实时疲劳检测系统实现
  • HTML5基础——4、表格
  • Docker 通信核心:docker.sock 完全指南
  • Flutter---Button
  • 网站建设需要敲代码吗信息流推广实施策划书
  • 广元网站建设电子商务网站建设主要内容
  • 4.4-中间件之gRPC
  • 网络与通信安全课程复习汇总1——课程导入
  • Qt模型控件:QTreeViewQTreeWidget
  • 河南省城乡建设厅官网廊坊快速优化排名
  • 网站建设应该考虑哪些问题企信宝
  • 青海做网站最好的公司互联网推广引流
  • 一天一个设计模式——装饰器模式
  • 婚恋交友 APP 核心功能分析:从匹配逻辑到用户体验的全链路设计
  • 用一个 prompt 搭建带 React 界面的 Java 桌面应用
  • 宁波建网站价格wordpress注明网站
  • wordpress添加网站地图黑龙江新闻头条最新消息
  • 机械臂装配自动化推动紧固件设计革新
  • JSAR 入门教程:从零开始开发空间天气小摆件
  • 【Pytorch】什么是梯度
  • 核间通信机制
  • 吕口*云蛇激光*VS*薄利魔刀*武打算法的方案
  • CSP-S模拟赛五总结(实际难度远低于提高组)
  • 网站建设服务器的配置wordpress 输出sql