每次构建镜像都会产生构建缓存(Build Cache),日积月累就会占用很多磁盘空间,这时就需要清除这些缓存,但是清除了缓存后,再次构建镜像就会重新拉取 jdk 镜像,这个过程会很慢(如果没梯子、网络又差又或者在内网环境中......嘿嘿!!!相当酸爽!!!)。
Dockerfile 样例:
FROM openjdk:8 AS builder
WORKDIR /var/service
COPY target/test-1.0.0.jar ./test.jar
EXPOSE 9999
VOLUME /var/service/log
VOLUME /var/service/config
ENV JVM_OPTIONS=""
ENV OPTIONS=""
ENV TZ="Asia/Shanghai"
解决方案:
# 通过上述 Dockerfile 样例中看得出来,所使用的 jdk 为:openjdk:8,所以提前拉取这个镜像即可
docker pull openjdk:8
# 查看 docker 构建缓存命令
docker system df
# 清除 docker 构建缓存命令,输入完成后输入 Y 确认清除
docker builder prune
这样就可以每次构建镜像时不再需要拉取 jdk 镜像,其他版本 jdk 均可以按上述操作