我希望创建一个带有条件语句的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
我希望创建一个带有条件语句的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
Dokerfile 本身没有条件语句。然而,您可以在 shell 中实现它们:
RUN if [ "$BUILD_TOOL" = "maven" ] ; then \
echo do something; \
else \
echo do something else; \
fi
当你使用多行命令时,请记得在每行末尾添加\
。
\
结尾,就像示例中的fi
一样。 - undefinedRUN if [ "$zxbild" = "demo" ] ; then \ RUN npm run zxDemo; fi
。也许它不能正常运行,因为你说它是 shell 的方式而不是 Docker 的方式。 - undefinedRUN
- undefined
RUN if ...; then ...; else ...; fi
,这对于你展示的内容已经足够了。 - undefined