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 迁移。