【发布时间】:2019-05-09 03:58:49
【问题描述】:
我有一个在多个 docker 容器上运行的应用程序。为了简化我的问题,假设我有 3 个容器:一个用于 MySQL,2 个用于 2 个 api 实例(共享代码所在的同一卷,但使用不同的 env 指定不同的数据库设置),如以下 @987654322 中所配置@
services:
api-1:
image: mynamespace/my-image-name:1.0
environment:
DB_NAME: db_api_1
api-2:
image: mynamespace/my-image-name:1.0
environment:
DB_NAME: db_api_2
在Makefile 中,我有为我的每个 api 实例部署容器和安装数据库的规则。
我想要实现的是创建一个make 规则,该规则在给定env 的情况下转储数据库。知道我的 api 实例上没有安装 MySQL 客户端,我认为应该有一种方法可以从 api 容器中提取我需要的 env 变量(使用 printenv VARNAME),然后在数据库容器中使用它。
有谁知道这是怎么做到的?
【问题讨论】:
-
当你说 3 个容器是指 3 个独立的 docker 镜像?还是来自一个 docker 映像的 MySQL 容器和 2 个 API 实例是从同一个 docker 映像创建的两个容器?如何为 2 个 API 实例中的每一个指定不同的环境变量?
-
它是来自 MySQL 映像的 1 个容器和来自同一映像但具有不同 env 的 2 个 API。我已经更新了我的问题
标签: docker makefile environment-variables