首页 > 解决方案 > 当文件名相同时,Docker 将 COPY 的第一个文件被 COPY 的第二个文件覆盖

问题描述

我想要一个条件COPYDockerfile但由于这个选项不存在,我遇到了这个解决方法。假设我有以下情况(文件名简化):

COPY file1.txt another_folder/file1.txt* /etc/some_folder/

如果第二个存在,第一个file1.txt会被第二个覆盖吗?another_folder/file1.txt因此,如果它存在,那/etc/some_folder/file1.txt将是第一个another_folder,否则是第一个。

两个文件名将是相同的名称但不同的内容。

为了事先说明清楚,我想要描述的行为。

标签: dockerdockerfile

解决方案


自己跑过去看看。简短的回答:是的,它可以满足您的需求

FROM alpine
COPY f1.txt t/f1.txt*  /
RUN cat f1.txt

在 f1.txt 中,我输入了“aaa”。在 t/f1.txt 中,我输入了“bbb”。

构建显示“bbb”。

如果我删除 t/f1.txt,构建会显示“aaa”


推荐阅读