docker file 打包jar_【实战篇】基于Dockerfile编译、打包、运行java工程

今天在部署java工程时遇到的需求,本意想通过Dockerfile实现编译、打包、运行一体化的方案,结果百度了半天都没找到想要的解决方案,都是本地编译打包,然后COPY到基础镜像里面。后来在google上面找到了一个方案,原文戳这里:https://dzone.com/articles/build-package-and-run-spring-boot-apps-with-docker

0x01: 找到待部署的项目,在pom.xml同级目录下添加Dockerfile:

添加Dockerfile文件.png

文件内容:

# VERSION 1.0.0

# Author: robin

# 打包jar采用maven镜像

FROM maven:3.5.2-jdk-8-alpine AS MAVEN_BUILD

MAINTAINER robin

# 工作目录在镜像的 /build 目录下

WORKDIR /build/

# 把本地的 pom.xml 和 src目录 复制到镜像的/build目录下

COPY pom.xml /build/

COPY src /build/src/

# 执行maven打包

RUN mvn package

# 运行jar采用jdk基础镜像

FROM openjdk:8-jdk-alpine

# 设置工作目录在镜像的 /app 目录下

WORKDIR /app

# 将jar包添加到容器中并更名为app.jar

COPY --from=MAVEN_BUILD /build/target/********-1.0-SNAPSHOT.jar /app/

# 运行jar包

ENTRYPOINT ["java","-jar","********-1.0-SNAPSHOT.jar"]

0x02 制作docker镜像

执行如下命令

docker build -t **********:1.0 .

由于maven:3.5.2-jdk-8-alpine镜像的仓库地址是用的官方仓库地址,在国内访问的话会很慢,我看了它的镜像的环境变量,它支持配置maven config,讲道理可以通过volume方式把我们的配置加载进去,不过我这里没尝试。

maven image.png

经过漫长的下载等待,终于制作好我们的镜像了。运行测试下来,完美!以后就可以轻松制作docker镜像啦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值