将本地环境variables传递给docker

这可能是一个普通的docker问题,但我的用例是docker-compose:

我需要将我的机器的主机名作为环境variables传递给通过docker-compose创build的容器。 该特定的容器使用Dockerfile,并使用“cmd”标志。 “cmd”中的命令使用此环境variables。 有人可以帮忙吗?

如果您可以重写Dockerfile以将主机名包含在ENV指令中(如问题1136中所述) ,那么这将起作用:

 FROM centos:latest ENV BLABLA hello RUN echo $BLABLA # outputs: "hello" 

如果这纯粹是一个运行时环境variables值,它应该被包含在Docker 1.9中, 问题14634:构build器 – 构build时间parameter passing(例如, HTTP_PROXY ) :

与此同时, OP 208rishabh提到docker compose 2091年的问题 ,由dnephin回答:

环境或env_file 都应该工作 :

您可以将该值保留为空白,并将采用当前环境中的值:

 environment: HOST_HOSTNAME: 

这允许:

 HOST_HOSTNAME=$(hostname) docker-compose up