我有一个像这样的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>
有可能吗?如果没有,我有什么技巧可以做到这一点?
答案 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。