FROM lwieske/java-8
COPY target/*.jar app.jar
# set Time zone
ENV TZ=Asia/Shanghai
RUN set -eux; \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
echo $TZ > /etc/timezone
ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar","/app.jar",""]
这是我构建的dockerfile 打包每次一个包都得1分多钟异常的奇怪,jar包才200M,问题也不是源下载过慢问题,通过不断的排查发现打出来的jar包非常大,2.7GB,jar包才200。打开jia包查看内容发现,里面出现递归的文件目录都是一样的。很有可能复制jar包命令有问题或者配置问题。
经过测试将
? ? ? ??COPY target/*.jar app.jar
改为 ????????ADD target/*.jar app.jar 镜像过大问题解决,深层一点问题有空再了解下~
找到原因
dockerfile
FROM lwieske/java-8
ADD target/*.jar app.jar
# set Time zone
ENV TZ=Asia/Shanghai
RUN set -eux; \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
echo $TZ > /etc/timezone
ENTRYPOINT ["java","-Dfile.encoding=utf-8","-jar","/app.jar",""]
<!--docker 打包插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<imageName>${project.artifactId}</imageName>
<dockerHost>${docker.location}</dockerHost>
<dockerDirectory>${project.basedir}</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置,也可以写到 Docokerfile 中 -->
<!-- <resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>-->
</configuration>
</plugin>
原来是 dockerfile 中的copy? 跟 pom文件定义的复制jar包功能重复了,执行过长中两者执行了同样的功能,导致的target目录过大,注释后原来1~3G左右的target目录减少到了270M,
?270M在25S 内传递完毕,比之前1分30秒快了好多,mark
|