docker - Dockerfile 在 COPY 中构建 ARG --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" ]
推荐阅读
- javascript - 反应js在显示后从状态填写表格
- python - 现有类不在目录中
- python - 带break的基本python while循环
- javascript - 如何在 .innerHTML 中显示对象中所选答案的结果
- python - 我们如何在 python 的 2D 列表中的同一个地方附加不同的单词?
- python-3.x - Python 3 导入 pynput xlib 警告
- azure - Azure Durable Functions,“IsReplaying”标志的意外值
- amazon-web-services - 在 QuickSight 中可视化几天内的时间值
- c++ - 用strand提升asio并发定时器取消问题
- c# - 在 c# List 中的所有属性和嵌套属性中搜索值