Docker RUN 使用多个命令和 if 条件

Jyo*_*Jyo 0 docker dockerfile

我对 docker 文件了解不多。请帮助我满足以下要求。

我正在寻找一个 docker RUN 命令,如下所示:

RUN set -ex && \
    yum install -y tar gzip && \
    <Other set of commands which includes mkdir, curl, tar>
    rm -vr properties  && \
    if [${arg} == "prod"] then  rm -v conf/args.properties fi 
Run Code Online (Sandbox Code Playgroud)

这不起作用并出现错误 syntax error: unexpected end of file

小智 5

在我看来,你错过了一两个 ;

如果在同一行中,shell 中的 if 语句需要;在条件后有一个then

;在之前的 rm 语句之后添加了一秒钟fi


你的代码应该看起来像

RUN set -ex && \
    yum install -y tar gzip && \
    <Other set of commands which includes mkdir, curl, tar>
    rm -vr properties  && \
    if [ ${arg} == "prod" ]; then  rm -v conf/args.properties; fi
Run Code Online (Sandbox Code Playgroud)