【发布时间】:2017-07-19 22:29:52
【问题描述】:
我想使用多阶段构建来避免在每次构建应用程序时下载我的 Java 项目所需的所有 Maven 依赖项。
我正在考虑在第一阶段解决 Maven 依赖项,然后在第二阶段构建应用程序,这将需要访问在前一阶段下载的依赖项。
如果我很好地理解多阶段构建,我可以将在第一阶段创建的文件复制到第二阶段,但理想情况下,我希望能够从依赖项所在的第一阶段“挂载”或“共享”文件夹live而不是复制文件,有可能吗?还是有更好的方法来实现这一目标?
谢谢。
编辑:
这是我考虑的第一个阶段
FROM some-image-with-maven AS maven-repo
WORKDIR /workspace/
COPY pom.xml .
RUN mvn -B -f pom.xml dependency:resolve
但由于 pom 文件在大多数情况下会有所不同(因为我想跨项目共享此阶段),因此解决依赖关系的以下步骤将再次下载所有这些文件(而不是使用缓存层)。
【问题讨论】:
-
根据我从here 学到的知识,您可以使用关键字
AS命名每个阶段并引用该构建阶段 -
是的,但我只看到使用阶段名称执行 COPY 的示例