【问题标题】:Dockerfile: Inherit environmental variables from shellDockerfile:从 shell 继承环境变量
【发布时间】:2023-04-04 09:58:02
【问题描述】:

当使用Dockerfile 构建图像时,为了使一些环境变量可用于 docker 构建上下文,应显式声明形式的关联

ENV MYVAR=MYVALUE

AFAIK(如果我在这里被误导,请纠正我),导出到执行 docker build 命令的 shell 的环境变量传递给 Docker 构建上下文,即如果在我以前的shell

export FOO=BAR

在我的Dockerfile 中有以下声明

ENV FOO=$FOO

然后回显(仍然来自Dockerfile$FOO 将打印一个空字符串。

所以如果以上所有内容都正确,我的问题是是否有办法让 docker build context 继承被调用的 shell 的环境。

【问题讨论】:

    标签: docker environment-variables dockerfile


    【解决方案1】:

    您可以使用ARG 定义默认值:

    ARG build_var=default_value
    ENV ENV_VAR=$build_var
    

    然后在构建时覆盖:

    docker build --build-arg build_var=$HOST_VAR
    

    【讨论】:

      【解决方案2】:

      您可以从终端获取值并像这样传递它...

      $ export test="works"
      $ docker run --name your_image_name -e TEST="${test}" -d -P your_image
      $ docker exec -it your_image_name /bin/bash
      $ env
      ...
      TEST=works
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多