ger*_*ijk 3 docker dockerfile docker-build
我正在使用Docker 18.05.0~ce~3-0~ubuntu,我想将构建参数传递给FROM以及我的Dockerfile中的其他行.你会期望以下工作:
ARG FROM_IMAGE=ubuntu:bionic
FROM $FROM_IMAGE
COPY sources_list/$FROM_IMAGE /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
它适用于第二行(FROM),但它的行为类似于COPY行中未设置:
第1/3步:ARG FROM_IMAGE = ubuntu:仿生步骤2/3:FROM $ FROM_IMAGE ---> 8626492fecd3 [...]步骤3/3:COPY sources_list/$ {SOURCES_LIST_FILE} /etc/apt/sources.list失败复制文件:无法复制目录:mkdir /var/lib/docker/overlay2/0536b4e280ddca2fec18db9d79fa625a8be86efdbaaea5b3dbbefcdaaab3f669/merged/etc/apt/sources.list:不是目录
如果添加另一个单独的构建arg,它适用于同一COPY行:
ARG FROM_IMAGE=ubuntu:bionic
FROM $FROM_IMAGE
ARG SOURCES_LIST_FILE
COPY sources_list/${SOURCES_LIST_FILE} /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
步骤4/4:COPY sources_list/$ {SOURCES_LIST_FILE} /etc/apt/sources.list ---> 7f974fffe929
为什么我不能FROM_IMAGE在FROM一行之前和之后使用构建arg两次?我没有找到任何记录在案的限制.
为什么我不能在FROM行之前和之后两次使用FROM_IMAGE构建arg?
根据您将ARG与FROM行相关的位置存在真正的差异:
这与构建阶段机制有关,可以在这里找到一些实际行为的参考:https://github.com/docker/cli/pull/333,以及为什么文档和构建机制在ARG使用上有点混乱的讨论在这里:https://github.com/moby/moby/issues/34129
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |