You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose部署PostgreSQL14单实例多租户库及restart配置

单PostgreSQL实例多库部署配置修改方案

官方PostgreSQL镜像默认仅会创建POSTGRES_DB环境变量指定的单个数据库,要在单实例内初始化多个逻辑库,可以利用镜像自带的初始化脚本机制:容器首次启动、完成基础用户和默认库创建后,会自动执行/docker-entrypoint-initdb.d/目录下的所有.sh、.sql格式文件。

修改后的docker-compose.yml

version: '2.1'
services:
    postgres:
        image: postgres
        ports:
            # 对外映射宿主机5432端口到容器内PostgreSQL默认监听端口
            - "5432:5432"
        restart: always
        environment:
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: postgres
            # 初始化时默认创建第一个库tenant_master
            POSTGRES_DB: tenant_master
        volumes:
            # 挂载自定义初始化脚本,自动创建剩余两个业务库
            - ./init-multi-db.sh:/docker-entrypoint-initdb.d/init-multi-db.sh
        healthcheck:
            # 健康检查调整为校验实例连通性,不绑定单个库
            test: ["CMD-SHELL", "pg_isready -U postgres"]
            interval: 10s
            timeout: 5s
            retries: 3

配套初始化脚本

在docker-compose.yml同级目录新建init-multi-db.sh文件,写入以下内容:

#!/bin/bash
set -e

# 实例启动完成后自动创建两个租户库
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
    CREATE DATABASE tenant_1;
    CREATE DATABASE tenant_2;
EOSQL

注意:同一PostgreSQL实例内的多个数据库为逻辑隔离,共用同一个服务监听端口,访问时仅需在客户端连接参数中指定对应库名即可,无需为每个库分配独立端口,完全匹配你要求的三个库统一对外5432端口的需求。
如果你之前已经启动过旧版本的compose生成了数据库数据卷,需要先执行docker-compose down -v删除旧的残留数据卷,再执行docker-compose up -d启动,否则初始化脚本不会触发,剩余两个库不会自动创建。


restart配置项说明

restart: always 详情

  • 作用:配置容器的自动重启策略,设置为该值时,容器无论因何种原因退出(包括进程异常崩溃、宿主机重启、Docker服务重启),都会被自动拉起;即使用户手动执行docker stop停止容器,只要Docker daemon后续重启,容器也会自动启动。
  • 使用方法:在服务定义层级与image、ports等配置同级,直接添加restart: always即可生效。
  • 适用场景:生产环境部署的数据库、Web服务、缓存等需要长期稳定运行的业务组件,避免意外退出导致服务中断。

其他可选重启策略

  • no:默认值,容器退出后无论任何原因都不会自动重启
  • on-failure[:max-retries]:仅当容器以非0状态码(异常退出)时才触发重启,可追加参数指定最大重试次数,超过次数后不再重启;适合执行一次性任务、正常执行完成(退出码0)不需要重启的场景
  • unless-stopped:重启逻辑和always基本一致,核心区别是如果用户手动执行docker stop停止容器,后续Docker服务重启时不会自动拉起该容器;适合开发环境、手动停止后需要保持停止状态的长期运行服务。

内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 08:12:12