dockerfile:从主机

时间:2018-01-05 19:47:31

标签: docker

我熟悉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 .

得到相同的结果。

这可能吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用docker-compose构建,使用如下的docker-compose文件:

docker-compose build

然后您的用户可以运行FOOc.NotebookApp.browser = '/usr/bin/opera %s' 变量将被转发到Dockerfile。请参阅:https://docs.docker.com/compose/compose-file/#args