将jar包打包为docker镜像

此记录一下将springboot项目的jar打包成docker镜像记录错误点。

1.将springboot项目打包成jar包

参考博客 : springboot项目打包成jar_springboot打包成jar-CSDN博客

具体打包步骤参考他的如何打包: 使用IDEA进行打包。但是我需要在我的springboot的pom.xml文件里面配置如下插件。

<build>
		<plugins>


			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>2.6.13</version><!--  自己的SpingBoot版本   -->
				<configuration>
					<!--  自己的启动类地址   -->
					<mainClass>com.example.hellotest.HelloTestApplication</mainClass>
				</configuration>
				<executions>
					<execution>
						<id>repackage</id>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>

利用IDEA打包完成后, 会在下图生成如下文件。

有个坑点就是: 当我重新clean打包后,那个MANIFEST.MF文件也需要重新删除,然后再clean再进行package来进行打包出的jar文件才能使用。

运行:  java -jar .\target\HelloTest-0.0.1-SNAPSHOT.jar

 

2.将jar包打包成docker镜像。

其实原理还是非常简单的,就是将我们程序的jar包放在一个镜像里面。当我们启动一个镜像的时候,把jar包一起启动了。

 Dockerfile

# 环境(运行jar包镜像,需要自己提前拉下来)
FROM centos:7
# 作者信息
MAINTAINER jzm

# 复制JDK环境(命令第一个参数必须是相对路径)
COPY jdk-14 /tools/java/jdk-14
# 配置环境变量(以你复制的环境来配置的)
ENV JAVA_HOME=/tools/java/jdk-14
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 拷贝jar
COPY HelloTest-0.0.1-SNAPSHOT.jar .
ADD HelloTest-0.0.1-SNAPSHOT.jar /app.jar
COPY application.yml /home
# 暴露的端口号
EXPOSE 80
# 执行命令
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=/home/application.yml"]

将我们刚才的jar包、项目的配置文件、Dockerfile放到一个目录下面。 

以下jdk-14目录,是我下载的linux jdk-14版本的目录。主要为了演示,将他拷贝过来。实际情况下大家按照自己环境的jdk目录,然后用相对路径找到是没问题的。

 

将这个目录通过文件传输工具拷贝到linux的某目录下面。

我们在这目录,执行如下指令:

docker buildx build -t test/jzm:1.0.0 -f ./Dockerfile .

-t 是指打包出的镜像名。

-f 是指Dockerfile文件所在的路径

. 是构建上下文目录。

 这时候我们执行: 

docker images 

代表打包成功了。 

执行:

docker run -d -p 80:80 test/jzm:1.0.0

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本郡主是喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值