Docker 与 Compose

Docker 与 Compose

镜像构建

docker build -t mliev-push:v1.0.0 .

多阶段 Dockerfile 会构建管理后台和安装页,再将静态资源嵌入 Go 二进制。容器监听 8080,健康检查使用 /health/simple

Compose 要点

仓库没有可直接用于生产的固定 Compose 拓扑;应在部署仓库中定义服务、MySQL/PostgreSQL、Redis、持久卷与 Secret。应用至少需要:

environment:
  APP_INSTALLED: "true"
  DATABASE_DRIVER: postgresql
  DATABASE_HOST: postgres
  DATABASE_PORT: "5432"
  DATABASE_DBNAME: message_push
  DATABASE_USERNAME: message_push
  DATABASE_PASSWORD: ${DATABASE_PASSWORD}
  REDIS_HOST: redis
  REDIS_PORT: "6379"
  REDIS_DB: "0"
  JWT_SECRET: ${JWT_SECRET}
  APP_ENCRYPTION_KEY: ${APP_ENCRYPTION_KEY}

APP_ENCRYPTION_KEY 必须是 32 字节并在所有副本一致,否则已保存的 App Secret 无法解密。首次安装也可不设置 APP_INSTALLED,通过受保护的 /install/ 完成 MySQL/PostgreSQL 初始化。

发布检查

启动后依次检查 /health/simple/health、管理员登录、发送准备台和一条受控测试。服务启动会自动执行与数据库方言对应的 goose 迁移。

相关页面:Web 安装向导 · 运维与故障排查