如何将参考图像中的多个 docker 副本合并到单行中?

问题描述 投票:0回答:1

如何将多个 COPY 命令组合到一个 dockerfile 中,并且全部使用

--from=X
?我正在努力

COPY --from=x /dir1 /dir1 && \
--from=x /dir2 /dir2 && \
--from=x /dir3 /dir3 && \
--from=x /dir4 /dir4

但这给了我错误

ERROR: failed to solve: circular dependency detected on stage: x

docker dockerfile
1个回答
0
投票

根据我的经验,Docker 不支持像您一样在一个命令中直接将多个源目录映射到多个目标。每个

COPY
命令只能处理单个源到目标的映射或将多个源复制到一个目录。

如果您将多个文件复制到一个目录中,您通常会看到类似于您的结构的

COPY
命令:

COPY --from=x /dir1/* /dir2/* /dir3/* /dir4/* /destination/

这会将这些目录中的所有文件复制到一个 single

/destination/
目录中,这不是您想要的。

对于您想要实现的目标,您需要使用多个

COPY
命令,每个命令都指定正确的源路径和目标路径:

COPY --from=x /dir1/ /dir1/
COPY --from=x /dir2/ /dir2/
COPY --from=x /dir3/ /dir3/
COPY --from=x /dir4/ /dir4/

复制命令的用法有更好的解释这里

© www.soinside.com 2019 - 2024. All rights reserved.