是否有一种方法可以在Docker文件中使用If条件?
我是新来的是否有一种方法可以在Docker文件中使用If条件?,docker,dockerfile,Docker,Dockerfile,我是新来的docker,我正在寻找一种在docker容器中执行命令的方法,具体取决于环境 在Dockerfile中,我有两个命令,命令a和命令b。如果env='prod'run命令a,else命令b。我怎样才能做到这一点 我试过如下: RUN if [ $env = "prod" ] ; then echo command_a; else echo cpmmand_b; fi; 我怎样才能达到期望的行为 附言: 我知道echo不应该在那里 Docker 17.05及更高版本支持一种使用多阶段构
docker
,我正在寻找一种在docker容器中执行命令的方法,具体取决于环境
在Dockerfile中,我有两个命令,命令a和命令b。如果env='prod'
run命令a,else命令b。我怎样才能做到这一点
我试过如下:
RUN if [ $env = "prod" ] ; then echo command_a; else echo cpmmand_b; fi;
我怎样才能达到期望的行为
附言:
我知道echo不应该在那里 Docker 17.05及更高版本支持一种使用多阶段构建和构建参数的条件。看看 从博客帖子:
ARG BUILD_VERSION=1
FROM alpine AS base
RUN ...
FROM base AS branch-version-1
RUN touch version1
FROM base AS branch-version-2
RUN touch version2
FROM branch-version-${BUILD_VERSION} AS after-condition
FROM after-condition
RUN ...
然后使用
docker build--build arg build\u VERSION=value…
我想你已经找到了正确的方法。Docker不提供条件语句,当您尝试这样做时发生了什么?好吧,它在RUN语句中计算条件,一切都与bash或shell@Henry-它当然只是打印了:D它并没有执行它。所以它基本上按照预期工作。现在只需将echo命令\u a
替换为要运行的命令即可。