首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用环境变量通过一个docker-compose.yml部署多个数据库?

如何使用环境变量通过一个docker-compose.yml部署多个数据库?
EN

Stack Overflow用户
提问于 2020-12-02 17:47:55
回答 1查看 199关注 0票数 0

这是我的docker-compose.yml

代码语言:javascript
复制
version: "3"
services:
  db:
    container_name: "container_${DB_NAME}"
    image: mysql:5
    restart: always
    environment:
      MYSQL_DATABASE: "${DB_NAME}"
      MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
    ports:
      - "${DB_PORT}:3306"

这是我的.env.development (我的.env文件之一):

代码语言:javascript
复制
PORT=3000
DB_HOST=localhost
DB_PORT=3306
DB_NAME=db_dev
DB_USERNAME=root
DB_PASSWORD=root

我使用docker-compose --env-file .env.development up部署数据库服务,它工作得很好。

但是,如果我想使用另一个.env文件(例如docker-compose --env-file .env.production up)同时部署另一个数据库服务,则第一个服务将被停止,我会收到以下消息:

代码语言:javascript
复制
Recreating container_db_dev ... done
Attaching to container_db_prod

所以我的问题是,我可以像这样使用一个docker-compose.yml,并根据.env给定的文件部署多个数据库服务吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-02 17:57:58

您可以使用-p命令来指定您的合成堆栈名称。

docker-compose -p "new_stack" --env-file .env.production up

我从stack name with docker-compose得到的答案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65105654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档