如果其他带有 dockerfile 说明



我有一个这样的Dockerfile:

FROM ubuntu:16.04
:
:
RUN git clone <url> 
:

有时,我要克隆的存储库太大。

因此,在运行此git clone命令之前,我想检查一下 我要克隆的存储库是否存在于当前 目录( dockerfile 的目录(,如果是这样,那么我会做一个COPY <repo-name> .指令而不是RUN git clone <url>指令。

我想实现这样的事情:

FROM ubuntu:16.04
:
:
if exists <repo-name>
COPY <repo-name>
else
RUN git clone <url> 
:

甚至可能吗?如果没有,我能做些什么来实现这一目标?

If-Else在Dockerfiles中不是东西。您最好在提供 If-Else 的RUN中使用单行 bash 命令:

RUN if git clone <repo>; then echo "Exists"; else echo "Error"; fi

或者,如果您追求的行为需要更多的脚本,请将其放入脚本中并以这种方式运行它,以防止所有混乱出现在您的 Dockerfile 之外:

COPY git-script.sh /usr/local/bin
RUN chmod +x /usr/local/bin/git-script.sh && 
bash git-script.sh

在这里也找到了类似的答案。

最新更新