# 构建镜像前在 Windows 执行: dist\build-linux-amd64.bat
# 再放入 dist/mengyastore-backend-linux-amd64 后构建（服务器仅需 Docker，无需 Go）
#
# 与本地 dev.bat 使用同一套库：
#   - Compose 会自动读取本目录下的 .env（若存在），用于 ${VAR} 替换并传入容器。
#   - 将本地 mengyastore-backend-go/.env.development 复制到服务器本目录，命名为 .env；
#     或至少设置与开发机相同的 DATABASE_DSN。
#   - 默认 APP_ENV=development：与 go run 且未设 APP_ENV 时一致（空 DSN → 代码内 TestDSN）。
#     正式上生产请在 .env 中写 APP_ENV=production。
#
# 前端「样式和本地 npm run dev 不一样」：部署一般是 npm run build 的产出，经 Nginx 缓存；
#   换文案/样式后需重新构建前端并强刷或清理 Service Worker（PWA）。
services:
  backend:
    build:
      context: .
    container_name: mengyastore-backend
    ports:
      - "28081:8080"
    environment:
      APP_ENV: ${APP_ENV:-development}
      GIN_MODE: ${GIN_MODE:-release}
      TZ: Asia/Shanghai
      DATABASE_DSN: ${DATABASE_DSN:-}
      ADMIN_TOKEN: ${ADMIN_TOKEN:-changeme}
      AUTH_API_URL: ${AUTH_API_URL:-}
      REDIS_ENABLED: "false"
      REDIS_ADDR: ${REDIS_ADDR:-127.0.0.1:6379}
      REDIS_PASSWORD: ${REDIS_PASSWORD:-}
      REDIS_DB: ${REDIS_DB:-1}
      RABBITMQ_ENABLED: "false"
      RABBITMQ_ENV: ${RABBITMQ_ENV:-dev}
      RABBITMQ_URL: ${RABBITMQ_URL:-}
    restart: unless-stopped
