【问题标题】:Conditional ARG in Dockerfile?Dockerfile中的条件ARG?
【发布时间】:2018-02-14 05:32:51
【问题描述】:

如果我传递一个可选的 ARG,我会尝试有条件地在我的 docker 容器中安装 vim - 比如说 DEVBUILD。我找不到任何关于如何在 Dockerfile 中使用类似 IF 的文档。像这样的:

FROM node:8
if $DEVBUILD {
    RUN apt-get update
    RUN apt-get --assume-yes install vim
}

这可能吗?如果可以,在哪里可以找到语法参考?

【问题讨论】:

    标签: dockerfile


    【解决方案1】:

    是的,这是可能的。当 docker 构建镜像时,它使用标准 shell。

    Dockerfile 是:

    FROM node:8
    ARG DEVBUILD
    RUN if [ "x$DEVBUILD" != "x" ]; then apt-get update && apt-get --assume-yes install vim; fi
    

    如果您定义变量DEVBUILD,例如DEVBUILD=true

    docker build . --no-cache --build-arg DEVBUILD=true
    

    if 语句下的动作将被执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 2019-07-06
      • 2019-04-22
      • 2017-12-22
      • 1970-01-01
      • 2022-01-19
      • 2022-01-20
      • 2019-07-17
      相关资源
      最近更新 更多