IDEA 构建dockerfile 打包镜像时间过长

7 篇文章 0 订阅
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

配置IDEA打包Docker镜像的步骤可以按照以下的方法进行: 1. 首先,确保你已经安装了Docker Desktop,可以根据官方文档中的说明进行安装。 2. 在你的项目中,打开pom.xml文件并添加Docker插件的依赖。插件的groupId是"com.spotify",artifactId是"docker-maven-plugin",版本号可以根据需要进行配置。 3. 在pom.xml文件的同层级下,创建一个名为Dockerfile的文件。你可以参考在中提供的目录结构来创建这个文件。 4. 在Dockerfile文件中,你需要指定基础镜像,以及构建镜像时需要运行的一系列命令,例如复制文件、安装依赖、设置环境变量等。 5. 使用Maven命令构建镜像。在IDEA的终端中,切换到子模块的pom文件所在的目录,并执行以下命令:`mvn docker:build`。这将会使用Docker插件来构建镜像。 6. 构建完成后,你可以使用Docker命令来查看已构建镜像。在终端中执行命令:`docker images`,就可以看到你构建镜像。 在这个过程中可能会遇到一些问题,你可以参考中提供的遇到的坑部分来解决这些问题。 总结起来,配置IDEA打包Docker镜像的步骤包括:安装Docker Desktop、添加Docker插件的依赖、创建Dockerfile文件、构建镜像、查看构建镜像。希望这些步骤可以帮助到你。 - https://docs.docker.com/docker-for-windows/install/ - 目录 一、安装docker desktop 二、pom文件添加依赖 三、在pom文件同层级下创建 Dockerfile 文件 四、构建镜像( 去到子模块pom文件下) 五、查看构建镜像 六、遇到的坑<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [IDEA使用docker打包镜像](https://blog.csdn.net/qq_45171544/article/details/125898474)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Idea集成docker实现镜像打包](https://blog.csdn.net/dante1987/article/details/126718091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值