首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-组合多个postgres数据库

docker-组合多个postgres数据库
EN

Stack Overflow用户
提问于 2021-10-17 11:58:05
回答 1查看 70关注 0票数 0

我尝试通过编写docker-compose文件来创建几个postgres数据库,并在容器启动时创建数据库。问题是-没有创建数据库

我不明白为什么它不能创建。但是,如果我只尝试使用一个postgres,它就能正常工作。我错过了什么?

效果很好:

代码语言:javascript
复制
services:
  tenant_first:
    image: postgres
    restart: always
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=tenant_first
    ports:
      - 50005:5432

无法工作(如果有多个录制,则不创建数据库)

代码语言:javascript
复制
services:
  tenant_first:
    image: postgres
    restart: always
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=tenant_first
    ports:
      - 50005:5432

  tenant_second:
    image: postgres
    restart: always
    volumes:
      - pgdata:/var/lib/postgresql/data/
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_DB=tenant_second
    ports:
      - 50008:5432

我做了添加音量的工作

代码语言:javascript
复制
volumes:
  pgdata:
  pgdata2:
EN

回答 1

Stack Overflow用户

发布于 2021-10-17 12:41:45

下面是我所做的完全可行的解决方案

代码语言:javascript
复制
version: '3.3'

services:
  tenant_first:
    image: postgres
    restart: always
    volumes:
      - pgdata:/var/lib/postgresql/data/
      - ./sql/initdb.sh:/docker-entrypoint-initdb.d/initdb.sh
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres

    ports:
      - 50005:5432
#
  tenant_fours:
    image: postgres
    restart: always
    volumes:
      - pgdata2:/var/lib/postgresql/data/
      - ./sql/initdb_f.sh:/docker-entrypoint-initdb.d/initdb_f.sh
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_USER=postgres
    ports:
      - 50008:5432

networks:
  default:
    external:
      name: flask_mu_one_dbs

volumes:
  pgdata:
  pgdata2:

initdb.sh

代码语言:javascript
复制
#!/bin/bash
psql -U postgres
psql -c "create database tenant_first"

initdb_f.sh

代码语言:javascript
复制
#!/bin/bash
psql -U postgres
psql -c "create database tenant_fours"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69604111

复制
相关文章

相似问题

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