# 腾讯云 CVM 专用:只起 jnpf PG(资源限死,寄住共享生产机 YOUR_DB_HOST)。
|
# 背景/割接见 docs/superpowers/plans/2026-07-20-tencent-cloud-pg-shared-db.md。
|
# 镜像 cx/postgres:18.4 由 build docker/postgres 产出(amd64,含 pg_bigm/pgvector)。
|
# 凭据经仓库根 .env 注入;端口 15432(5432/5433 已被 fastgpt-pg/homework-pg 占)。
|
# 🔴 项目名 jnpf-pg 与 service key 绝不能改:卷名 jnpf-pg_jnpf_pgdata 由项目名派生
|
# (下方 jnpf_pgdata 未显式 name:),改了新容器挂空卷、客户A数据"消失"。
|
name: jnpf-pg
|
services:
|
cx-postgres:
|
# 2026-08-08 CVM 容器名规范化:带客户拼音(原 cx-postgres,与本机沙盒/交付基线同名易混淆)。
|
# 仅容器名改,service key / 项目名 / 卷不动。
|
container_name: cx-pg-customer1
|
image: cx/postgres:18.4
|
build:
|
context: .. # tencent/ 上一级 = docker/postgres(含 Dockerfile)
|
platform: linux/amd64
|
restart: unless-stopped
|
shm_size: 512m
|
mem_limit: 3g
|
memswap_limit: 3g # 无 swap,禁止溢出到 swap
|
environment:
|
TZ: Asia/Shanghai
|
POSTGRES_USER: postgres
|
POSTGRES_PASSWORD: ${JNPF_PG_PASSWORD:?缺 JNPF_PG_PASSWORD,先在仓库根 .env 设}
|
POSTGRES_INITDB_ARGS: "--locale=C.UTF-8 --encoding=UTF8"
|
volumes:
|
- jnpf_pgdata:/var/lib/postgresql
|
ports:
|
- "15432:5432" # 对公网(安全组只放 15432,靠强密码+非超户防护)
|
command:
|
- postgres
|
- -c
|
- shared_buffers=512MB
|
- -c
|
- shared_preload_libraries=pg_stat_statements,auto_explain
|
- -c
|
- pg_stat_statements.track=all
|
- -c
|
# 共享库:开发(本地~10服务)+测试(192.168.21.151~10服务)两环境 Druid 池叠加,
|
# 稳态曾达 197/200 逼满(L029 共库放大)。单环境 9 服务先例=200 → 双环境提到 400。
|
# 400 连接内存 ~700-900MB,仍在 mem_limit 3g / CVM 可用内存内。
|
- max_connections=400
|
- -c
|
- timezone=Asia/Shanghai
|
healthcheck:
|
test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
|
interval: 15s
|
timeout: 10s
|
retries: 10
|
start_period: 60s
|
volumes:
|
jnpf_pgdata:
|