如果还有dockerfile指令

时间:2018-10-22 15:16:03

标签: docker dockerfile

我有一个像这样的Dockerfile:

public static void main(String[] args) {
    Thread th1 = new Thread(new ABCThread_2(false, true));
    Thread th2 = new Thread(new ABCThread_2(true, false));
    th1.start();
    th2.start();
}

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

  

因此,在运行此FROM ubuntu:16.04 : : RUN git clone <url> : 命令之前,我想检查一下   我要克隆的存储库是否存在于当前   directory(dockerfile的目录),如果有的话,我会做一个   git clone指令代替COPY <repo-name> .   指示。

我想实现以下目标:

RUN git clone <url>

有可能吗?如果没有,我有什么技巧可以做到这一点?

1 个答案:

答案 0 :(得分:2)

If-Else在Dockerfile中不是问题。您最好在提供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

也找到了类似的答案here