在 docker 文件中包含 If else 语句

kav*_*ndu 4 if-statement conditional-statements docker

我想创建带有条件语句的 docker 文件。我从外部获取参数(BUILD_TOOL)。这是代码,但我在构建 docker 映像时遇到错误。

我收到此错误 = dockerfile 解析错误第 23 行:未知指令:ELSE

RUN if [ "$BUILD_TOOL" = "maven" ] ; then 
    RUN mvn clean install;

#if build tool is gradle
else 
    RUN gradle clean;
fi
Run Code Online (Sandbox Code Playgroud)

ane*_*yte 11

Dokerfile本身没有条件语句。不过你可以在 shell 中实现它们:

RUN if [ "$BUILD_TOOL" = "maven" ] ; then \
       echo do something; \
    else \
       echo do something else; \
    fi
Run Code Online (Sandbox Code Playgroud)

\当您有多行命令时,请记住在每行末尾添加。