给Java JAR包编写Dockerfile

【1】首先要打包成可运行的、完整的jar

打包命令:
mvn clean package spring-boot:repackage

说明:package spring-boot:repackage 会在打包jar的时候,把依赖的jar包一同重新打包加入到打包的jar中,使当前项目jar可运行。

注意事项:此命令需在jar包项目pom文件所在项目执行,否则会报错。

【2】基础镜像要适当,如果不理会中文环境包等细节,可以100MB出头;
以下是3个可用的较小的镜像
FROM openjdk:8-jdk-alpine 这个基础镜像最小,105MB;
FROM fabric8/java-alpine-openjdk8-jdk,108MB;
FROM openjdk:8-jre ,265MB,

而且JAVA_HOME不用设置了,基础镜像里都设置好了;
(基础镜像的内部细节可以通过 inspect命令查看
docker inspect openjdk:8-jre
构建细节则可以通过history命令查看:
docker history --no-trunc openjdk:8-jdk-alpine)

【3】Dockerfile 示例:
FROM openjdk:8-jdk-alpine
MAINTAINER “gzjungle”
LABEL description=“描述”

复制运行文件环境

RUN mkdir /springbootdemo
WORKDIR /springbootdemo
COPY ./SpringBootDemo-1.0-SNAPSHOT.jar /springbootdemo

EXPOSE 8080

直接运行Jar包

CMD [ “java”, “-jar”,“SpringBootDemo-1.0-SNAPSHOT.jar”]

如果Dockerfile里面要通过环境变量来指定springboot的profile配置用哪个(pro/dev/test), 要用另一种方式:
ARG spring_env_var=pro
ENV SPRING_ENV= s p r i n g e n v v a r C M D [ " s h " , " − c " , " j a v a − j a r S p r i n g B o o t D e m o − 1.0 − S N A P S H O T . j a r − − s p r i n g . p r o f i l e s . a c t i v e = spring_env_var CMD ["sh", "-c", "java -jar SpringBootDemo-1.0-SNAPSHOT.jar --spring.profiles.active= springenvvarCMD["sh","c","javajarSpringBootDemo1.0SNAPSHOT.jarspring.profiles.active=SPRING_ENV"]

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值