diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d8e778f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +# 本地开发/测试用 PostgreSQL。生产用原生 PG(scripts/init_postgres.py),不使用本文件。 +services: + postgres: + image: postgres:16-alpine + container_name: shaguabijia-pg + environment: + POSTGRES_USER: shaguabijia_app + POSTGRES_PASSWORD: shaguabijia_dev_pw + POSTGRES_DB: shaguabijia + ports: + - "5432:5432" + volumes: + - pgdata:/var/lib/postgresql/data + - ./docker/initdb:/docker-entrypoint-initdb.d:ro + healthcheck: + test: ["CMD-SHELL", "pg_isready -U shaguabijia_app -d shaguabijia"] + interval: 3s + timeout: 3s + retries: 20 + +volumes: + pgdata: diff --git a/docker/initdb/01-create-test-db.sql b/docker/initdb/01-create-test-db.sql new file mode 100644 index 0000000..440ecca --- /dev/null +++ b/docker/initdb/01-create-test-db.sql @@ -0,0 +1,3 @@ +-- 仅在 pgdata 卷首次初始化时执行一次(以 shaguabijia_app 连 shaguabijia 库运行)。 +-- 幂等兜底见 scripts/ensure_pg.py 的 _ensure_test_db()。 +CREATE DATABASE shaguabijia_test OWNER shaguabijia_app;