# dusuniot 生产部署编排(放在 /home/docker/dusuniot/ 下使用,源码 rsync 到 ./app) # 用法:docker compose up -d --build name: dusuniot services: # # 数据库服务 PostgreSQL 18(数据落 ./data/pg,不对外暴露端口) db: image: postgres:18 restart: unless-stopped environment: POSTGRES_USER: dusuniot POSTGRES_PASSWORD: dusuniot POSTGRES_DB: dusuniot volumes: - ./data/pg:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U dusuniot -d dusuniot"] interval: 10s timeout: 5s retries: 12 # # 应用服务 TanStack Start + Bun(nginx 反代 127.0.0.1:3320) app: build: ./app restart: unless-stopped depends_on: db: condition: service_healthy environment: DATABASE_URL: postgres://dusuniot:dusuniot@db:5432/dusuniot PORT: "3312" ports: - "127.0.0.1:3320:3312" volumes: # 双挂载同一宿主目录:adminUploadMedia 写 public/uploads(cwd 相对), # prod-server 的 /uploads 直读与启动静态表走 dist/client/uploads - ./data/uploads:/app/public/uploads - ./data/uploads:/app/dist/client/uploads