Jenkins打包项目成Docker镜像(Web-ui形式)

 前置文档

本文档是在下述文档的基础上修改的,请先阅读一下文档

Jinkins打包项目成jar-CSDN博客文章浏览阅读63次。所需服务器:SVN服务器;Jenkins服务器;代码运行服务器;服务器环境要求:SVN服务器:无Jenkins服务器:jdk、maven运行服务器:jdk执行步骤:编写Java代码;代码上传SVN;Jenkins从SVN拉取代码,编译构建后,推送到运行服务器上并运行;https://blog.csdn.net/null_of_error/article/details/136041409

方式一:直接将jar打包成镜像

说明

更适合云原生环境。

jenkins将jar包和dockerfile推动到目标服务器(/opt/test);目标服务器上的docker 使用这两个文件构建新的镜像;docker使用新镜像启动容器。

原理

准备具有Docker环境的服务器;

准备dockerfile(基于官方jdk环境的)

// 基于官方jdk8的镜像
From openjdk:8
//开放端口
EXPOSE 8080
//指定工作目录
WORKDIR /root
//添加文件
ADD jarfile/Demo*.jar /root/app.jar
ENTRYPOINT [“java”, “ -jar”, “/root/app.jar”]

构建镜像

docker build -t demo .

运行镜像,生成容器

docker run -d --name demo -p 8080:8080 demo

步骤

1.在项目源码中创建dockerfile文件

和pom.xml同级,项目源码在下述博客中Jinkins打包项目成jar-CSDN博客文章浏览阅读63次。所需服务器:SVN服务器;Jenkins服务器;代码运行服务器;服务器环境要求:SVN服务器:无Jenkins服务器:jdk、maven运行服务器:jdk执行步骤:编写Java代码;代码上传SVN;Jenkins从SVN拉取代码,编译构建后,推送到运行服务器上并运行;https://blog.csdn.net/null_of_error/article/details/136041409

From openjdk:8
EXPOSE 8080
WORKDIR /opt/test
ADD ./DemoApplication-*.jar /root/app.jar
ENTRYPOINT ["java", "-jar", "/root/app.jar"]

2. Jenkins配置新的SSH服务器

有docker环境的

3. Jenkins配置Pre Steps

清理docker中已构建的项目。

rm -rf /opt/test/*
docker stop DemoApp
docker rm DemoApp
docker rmi demo-app-image

4. Jenkins配置 Post Steps

配置2个transfer set(一个传输jar,一个传输dockerfile),第一个transfer set的命令置空,第二个transfer set配置命令。

docker build -t demo-app-image /opt/test
docker run -d -p 8080:8080 --name DemoApp demo-app-image

方式二:外挂目录

说明

是最简单的方式,适合团队人数不多、项目不大的情况。

这种方式的工作原理是:创建一个包含jdk的docker镜像;在宿主机的目录里存放要运行的jar包;将docker镜像挂着此目录。jenkins将jar包传输到宿主机的目录中,docker启动镜像,创建容器。

步骤

1. 在服务器上手动创建容器

将jar包手动传输到/opt/test2目录下,执行以下命令

docker run -d -p 8090:8080 --name DemoApp2 -v /opt/test2/DemoApplication-1.0-SNAPSHOT.jar:/app.jar openjdk:8 java -jar app.jar

2. Jenkins设置Pre Steps

清理docker中已构建的项目。

rm -rf /opt/test2/*
docker stop demo-v1

3. Jenkins设置Post Steps

修改执行命令

docker start DemoApp2

  • 35
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值