java docker镜像打包优化

优化原理

class 与依赖jar包分层,依赖一般不会经常变动可以单独作为一个layer,平常打包就可以重复利用,从而加快打包速度

打包依赖

mvn dependency:copy-dependencies -DoutputDirectory=lib

打包代码

cd target/classes
tar -zcf com.tar.gz com

创建构建镜像Dockerfile

FROM openjdk:8-jre


EXPOSE 11336

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

# 复制资源
COPY libs /app/libs
ADD resources /app/resources
ADD com.tar.gz /app/classes

WORKDIR /app

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom"]
# 这里写你的启动类
CMD ["-cp", "/app/resources/:/app/classes/:/app/libs/*", "vip.youngboy.App"]

创建文件夹

把代码Dockerfile resource libs复制到一个文件夹中

- test 随便叫啥名
   - com.tar.gz //这个是编译好的class
   - libs //依赖的jar包
   - resources //项目resource下面的配置文件

执行 docker build -t youngboy:v3 . 构建镜像

你可能感兴趣的:(docker,java,docker打包,java打包优化)