Dockerfile 在 COPY --from= 中构建 ARG
Dockerfile build ARG in COPY --from=
我正在尝试为项目设置构建过程,但 运行 遇到了在 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
最后检查,你不能在那里使用构建参数,但你可以使用多阶段语法在行的顶层使用它。然后,您还需要在顶层定义构建参数:
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" ]
我正在尝试为项目设置构建过程,但 运行 遇到了在 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
最后检查,你不能在那里使用构建参数,但你可以使用多阶段语法在行的顶层使用它。然后,您还需要在顶层定义构建参数:
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" ]