【问题标题】:Pass local environment variable to docker将本地环境变量传递给 docker
【发布时间】:2015-09-24 13:05:42
【问题描述】:

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

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

【问题讨论】:

标签: docker dockerfile docker-compose


【解决方案1】:

如果您可以重写 Dockerfile 以将主机名包含在 ENV instruction, 中,如 issue 1136 中所述,那将起作用:

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

如果这纯粹是一个运行时环境变量值,它应该包含在 docker 1.9 中并带有issue 14634: Builder - Build-time argument passing (e.g., HTTP_PROXY)

与此同时,OP 208rishabh 提到issue 2091docker composednephin 回答:

环境或 env_file should both work:

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

environment:
   HOST_HOSTNAME:

这允许:

HOST_HOSTNAME=$(hostname) docker-compose up

【讨论】:

  • 第一个解决方案需要我硬编码环境变量的“值”。我想要一些动态的东西。运行时环境变量值看起来很酷 :) 现在,解决方案在这里:github.com/docker/compose/issues/2091
  • @208risabh 非常好:我已将您的 GitHub 问题解决方案包含在答案中以提高可见性。
猜你喜欢
  • 2020-11-07
  • 2019-06-02
  • 2018-03-24
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2021-06-07
  • 1970-01-01
相关资源
最近更新 更多