我熟悉ARG
,它允许将参数传递给dockerfile,如下所示:
Dockerfile
FROM ubuntu:latest
ARG foo
RUN echo $foo
$ docker build --build-arg foo=foo .
Sending build context to Docker daemon 2.048 kB
Step 1/3 : FROM ubuntu:latest
---> 00fd29ccc6f1
Step 2/3 : ARG foo
---> Running in 8f6ddda3254d
---> 9c658744762b
Removing intermediate container 8f6ddda3254d
Step 3/3 : RUN echo $foo
---> Running in 37bcbf3c5052
foo
---> 0e162e793204
Removing intermediate container 37bcbf3c5052
Successfully built 0e162e793204
但是,我想要的是将环境变量从主机转发到Dockerfile,而无需用户指定--build-arg
。因此,例如,我希望他们能够执行此操作:
$ export foo=foo
$ docker build .
得到相同的结果。
这可能吗?
答案 0 :(得分:1)
最简单的方法是使用docker-compose构建,使用如下的docker-compose文件:
docker-compose build
然后您的用户可以运行FOO
,c.NotebookApp.browser = '/usr/bin/opera %s'
变量将被转发到Dockerfile。请参阅:https://docs.docker.com/compose/compose-file/#args