From 3fd6bd82e3117e0142a3fc596c3e40690d52e15d Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 29 Apr 2026 10:47:00 +0800 Subject: [PATCH] feat(deploy): docker-compose production stack with bootstrap envs --- docker-compose.yml | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9c89d8b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + POSTGRES_USER: ${POSTGRES_USER:-acw} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-acw} + POSTGRES_DB: ${POSTGRES_DB:-acw} + volumes: + - acw-pg-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-acw}"] + interval: 5s + timeout: 5s + retries: 10 + + app: + image: acw:dev + build: . + restart: unless-stopped + environment: + APP_ENV: production + APP_HTTP_ADDR: ":8080" + APP_DB_DSN: "postgres://${POSTGRES_USER:-acw}:${POSTGRES_PASSWORD:-acw}@postgres:5432/${POSTGRES_DB:-acw}?sslmode=disable" + APP_MASTER_KEY: "${APP_MASTER_KEY}" + APP_DATA_DIR: "/data" + APP_BOOTSTRAP_ADMIN_EMAIL: "${APP_BOOTSTRAP_ADMIN_EMAIL:-admin@local}" + APP_BOOTSTRAP_ADMIN_PASSWORD: "${APP_BOOTSTRAP_ADMIN_PASSWORD}" + ports: + - "8080:8080" + volumes: + - acw-data:/data + depends_on: + postgres: + condition: service_healthy + +volumes: + acw-pg-data: + acw-data: