一尘不染

Dockerfile中的条件COPY / ADD?

docker

我想在Dockerfile内将文件复制到映像中(如果存在),pip的requirements.txt文件似乎是一个不错的选择,但是如何实现呢?

COPY (requirements.txt if test -e requirements.txt; fi) /destination
...
RUN  if test -e requirements.txt; then pip install -r requirements.txt; fi

要么

if test -e requirements.txt; then
    COPY requiements.txt /destination;
fi
RUN  if test -e requirements.txt; then pip install -r requirements.txt; fi

阅读 400

收藏
2020-06-17

共1个答案

一尘不染

目前尚不支持此功能(因为我怀疑它会导致图像无法复制,因为相同的Dockerfile会根据文件的存在来复制或不复制该文件)。

问题13045中,仍要求使用通配符“ COPY foo/* bar/" not work if no file in foo”(2015年5月)。
目前(2015年7月)不会在Docker中实现,但是其他类似 bocker的
构建工具可以支持此功能。

2020-06-17