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}