将本地环境变量传递给docker

将本地环境变量传递给docker,docker,dockerfile,docker-compose,Docker,Dockerfile,Docker Compose,这可能是一个常见的docker问题,但我的用例是docker compose: 我需要将我的机器的主机名作为环境变量传递给一个容器,该容器将通过docker compose创建。该特定容器使用Dockerfile并在其中使用“cmd”标志。“cmd”中的命令使用此环境变量。有人可以帮忙吗?如果您可以重写Dockerfile,以便将主机名包含在中提到的中,则可以: FROM centos:latest ENV BLABLA hello RUN echo $BLABLA # outputs: &q

这可能是一个常见的docker问题,但我的用例是docker compose:


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

如果您可以重写Dockerfile,以便将主机名包含在中提到的中,则可以:

FROM centos:latest
ENV BLABLA hello
RUN echo $BLABLA 
# outputs: "hello"
如果这纯粹是一个运行时环境变量值,则应包含在docker 1.9中,并带有:

同时,提及的docker compose,答复如下:

环境或环境文件:

您可以将该值留空,它将从当前环境中获取该值:

这就允许:

HOST_HOSTNAME=$(hostname) docker-compose up

如果您可以重写Dockerfile,以便将主机名包含在中提到的中,则可以:

FROM centos:latest
ENV BLABLA hello
RUN echo $BLABLA 
# outputs: "hello"
如果这纯粹是一个运行时环境变量值,则应包含在docker 1.9中,并带有:

同时,提及的docker compose,答复如下:

环境或环境文件:

您可以将该值留空,它将从当前环境中获取该值:

这就允许:

HOST_HOSTNAME=$(hostname) docker-compose up

回答:谢谢@dnephin,它工作得很好:)回答:谢谢@dnephin,它工作得很好:)第一个解决方案需要我硬编码环境变量的“值”。我想要有活力的东西。运行时env变量值似乎很酷:)目前,解决方案如下:@208rishabh非常好:我已将您的GitHub问题解决方案包含在答案中,以提高可见性。第一个解决方案需要我硬编码环境变量的“值”。我想要有活力的东西。运行时env变量值似乎很酷:)目前,解决方案如下:@208rishabh非常好:我已将您的GitHub问题解决方案包含在答案中,以提高可见性。