如何将多个 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 不支持像您一样在一个命令中直接将多个源目录映射到多个目标。每个
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/
复制命令的用法有更好的解释这里。