使变量在容器之间可用?

Making a variable available between containers?

当我阅读 Docker docs 时,我的印象是使用 Docker Compose 时可以使一个容器中的变量在另一个容器中可用。

所以在容器 A 中我在脚本中做

export PASS=abc

并在 docker-compose.yml

containera:
  image: ...
  environment:
    - PASS

containerb:
  build: ...
  links:
    - containera:ca

但是当我在容器 B 中执行 env 时,PASS 是空的。

问题

如何使容器 A 中 PASS 的生成值在容器 B 中可用?

Docker 仅共享源自 Docker 的环境变量。 see their docs here

由于您的价值是由 containera 中的过程 运行 产生的,Docker 不知道它的价值。

您需要:

  • 在Dockerfile/docker-compose.yml
  • 中设置一个静态值
  • 设置一个带有 port/endpoint 的静态 ENV 变量,用于访问 containera 内的服务,该服务将 return 生成的 password/token.