Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
dockerfile:从主机获取环境变量_Docker - Fatal编程技术网

dockerfile:从主机获取环境变量

dockerfile:从主机获取环境变量,docker,Docker,我熟悉ARG,它允许将参数传递到dockerfile中,如下所示: Dockerfile FROM ubuntu:latest ARG foo RUN echo $foo 但是,我希望将环境变量从主机转发到Dockerfile中,而不需要用户指定--build arg。例如,我希望他们能够执行以下操作: $ export foo=foo $ docker build . 得到同样的结果 这可能吗?最简单的方法是使用docker compose进行构建,并使用docker compose文件,

我熟悉
ARG
,它允许将参数传递到dockerfile中,如下所示:

Dockerfile

FROM ubuntu:latest
ARG foo
RUN echo $foo
但是,我希望将环境变量从主机转发到Dockerfile中,而不需要用户指定
--build arg
。例如,我希望他们能够执行以下操作:

$ export foo=foo
$ docker build .
得到同样的结果


这可能吗?

最简单的方法是使用docker compose进行构建,并使用docker compose文件,如下所示:

my-awesome-service:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - FOO=${FOO}

然后用户可以运行
docker compose build
,并且
FOO
变量将被转发到Dockerfile中。请参阅:

是否可以不使用
docker compose
?我的管道目前只使用了
docker build
,而将其增强为使用
docker compose
需要重写许多东西,我不这么认为。您可能会考虑编写一个用于<代码> DOCKER Bug < /COD>的包装器,但这是DOCKER撰写的。Service .My-AWESOME-Service的错误<代码>不支持的配置选项:“ARGS”<代码> JoyyMyMaMeSET,我认为您可能与YAML有问题,或者使用旧版本的DOCKER撰写
my-awesome-service:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - FOO=${FOO}