【问题标题】:Dockerfile build ARG in COPY --from=Dockerfile 在 COPY 中构建 ARG --from=
【发布时间】:2021-09-23 16:17:42
【问题描述】:

我正在尝试为项目设置构建过程,但在 COPY 命令中使用 arg 时遇到问题。

该过程的一部分是将库构建到图像中,供多个其他图像使用。问题出现在以下几行:

ARG BUILD_CONFIG=dev
COPY --from=company/mu_library:${BUILD_CONFIG} /some/path /other/path

根据错误消息,${BUILD_CONFIG} 永远不会转换为 dev。预先添加回显行时,回显会打印dev

ARG BUILD_CONFIG=dev
RUN echo ${BUILD_CONFIG}
COPY --from=company/mu_library:${BUILD_CONFIG} /some/path /other/path

有没有人知道如何绕过它而不在 dockerfile 中创建所有指向单独标签的重复阶段?

编辑: 最小的 Dockerfile

FROM node:12.15:0 as prod
ARG BUILD_CONFIG=dev
RUN echo ${BUILD_CONFIG}

COPY --from=test/test-library:${BUILD_CONFIG} /work/dist /work/library/dist
CMD[ "bash" ]

错误: invalid from flag value test/test-library:${BUILD_CONFIG}: invalid reference format

【问题讨论】:

    标签: docker dockerfile docker-multi-stage-build


    【解决方案1】:

    最后检查,你不能在那里使用构建参数,但你可以使用多阶段语法在顶层使用它。然后,您还需要在顶层定义构建参数:

    ARG BUILD_CONFIG=dev
    FROM test/test-library:${BUILD_CONFIG} as test-library
    
    FROM node:12.15:0 as prod
    ARG BUILD_CONFIG
    RUN echo ${BUILD_CONFIG}
    
    COPY --from=test-library /work/dist /work/library/dist
    CMD[ "bash" ]
    

    【讨论】:

      猜你喜欢
      • 2022-01-19
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多