gpt4 book ai didi

maven - Docker多阶段构建和上一阶段的安装/共享

转载 作者:行者123 更新时间:2023-12-02 18:07:42 28 4
gpt4 key购买 nike

我想使用多阶段构建来避免每次构建应用程序时都下载我的 Java 项目所需的所有 Maven 依赖项。

我正在考虑在第一阶段解决 Maven 依赖项,然后在第二阶段构建应用程序,这将需要访问在前一阶段下载的依赖项。

如果我很好地理解多阶段构建,我可以将在第一阶段创建的文件复制到第二阶段,但理想情况下我希望能够从第一阶段“安装”或“共享”依赖项所在的文件夹活而不是复制文件,这可能吗?还是有更好的方法来实现这一目标?

谢谢。

编辑:
这是我考虑的第一个阶段

FROM some-image-with-maven AS maven-repo
WORKDIR /workspace/
COPY pom.xml .
RUN mvn -B -f pom.xml dependency:resolve

但是由于 pom 文件在大多数情况下会有所不同(因为我想跨项目共享这个阶段),解决依赖关系的以下步骤将再次下载所有这些文件(而不是使用缓存层)。

最佳答案

如果您不使用卷,您只能从第一阶段复制内容。使用卷时,您可以在基本上是独立容器实例的阶段之间共享数据。由于丢失清理卷通常没有得到妥善处理,我建议保留复制策略。与复制方法相比,使用绑定(bind)挂载共享数据并没有真正的好处。

关于maven - Docker多阶段构建和上一阶段的安装/共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45202089/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com