【发布时间】:2019-01-17 22:15:48
【问题描述】:
我想在我的Dockerfile 中添加一个条件COPY,但由于此选项不存在,我遇到了this 解决方法。假设我有以下情况(文件名简化):
COPY file1.txt another_folder/file1.txt* /etc/some_folder/
如果第二个another_folder/file1.txt 存在,第一个file1.txt 会被第二个another_folder/file1.txt 覆盖吗?这样/etc/some_folder/file1.txt 将成为another_folder 中的一个(如果存在),否则为第一个。
两个文件名将同名但内容不同。
为了事先说明清楚,我想要描述的行为。
【问题讨论】:
-
IMO 最好将条件移动到 dockerfile 之外的构建脚本
-
@stacksonstacks 你认为像上面那样做有缺点吗?如果可能的话,这看起来很优雅,但如果我错了,请教我。
-
它将其视为代码异味。这将创建一个可以生成两个不同图像的 dockerfile。通常情况下,1:1 dockerfile 到图像是要走的路。很可能,不同的配置在最终图像中很重要,应该这样标记
-
查看我对这个问题的回答,stackoverflow.com/a/54245466/4980651。它改进了解决方法,并且更容易理解。
-
@Siyu 谢谢,但我想先回答我的问题,因为我想了解它是否有效,以及为什么如果它有效则不是一个好的解决方案。
标签: docker dockerfile