Files
easygoadmin-wiki/EasyGoAdmin_Gin_NaiveVue/zh/deploy/docker.md
T
2026-10-26 09:07:19 +08:00

71 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 11.6 Docker 生产部署
:::tip 概述
`deploy/` 提供三位一体的容器化方案:多阶段 Dockerfile(精简镜像)、docker-compose.yaml(四服务编排)、nginx.conf(上传文件直供)。生产使用时叠加环境变量与安全加固。
:::
## 组成
| 文件 | 作用 |
|---|---|
| Dockerfile | 多阶段:golang:1.27-alpine 编译 → alpine:3.22 运行(非 root、时区与证书、健康检查探 /api/health) |
| docker-compose.yaml | admin-server + nginx + mysql + redis 编排;MySQL 首启自动建库、服务健康依赖 |
| nginx.conf | upload 直供(temp 封禁、SVG 附件、大小限制) |
## 生产启动
```bash
cp .env.example .env # 修改全部密码/密钥/域名
# .env 中设置:JWT_SECRET 强随机、各密码、FILE_DOMAIN_URL=https://files.your-domain
# 在项目根执行(compose 默认只找 deploy/.env,根目录 .env 须显式传入)
docker compose --env-file .env -f deploy/docker-compose.yaml up -d --build
```
:::tip 数据库初始化
MySQL 数据卷为空时自动导入 `document/mysql/easygoadmin.gin.elevue.sql` 定稿脚本(仅首次执行一次),
无需手工导 SQL;已有数据卷不会补表,需重导时请先备份再清卷。
:::
## 生产环境变量核对
compose 以 APP_ 规范键注入应用,`.env` 中的友好名经 `environment` 块映射:
| 环境变量(.env 键) | 生产要求 |
|---|---|
| APP_APP_PROD | true(.env 中取消注释即可,compose 已透传) |
| APP_GENERATOR_ENABLE | false(关闭代码生成器) |
| APP_API_DOCS / APP_API_METRICS | false(关闭文档/指标端点) |
| APP_DATABASE_DEFAULT_* | 内网地址与强密码 |
| APP_REDIS_DEFAULT_PASS | 强密码 |
| APP_JWT_SECRET(友好名 JWT_SECRET) | 强随机(非样例值) |
| APP_FILE_UPLOADDIR / APP_FILE_DOMAINURL | 容器路径与 https 文件域址 |
MySQL/Redis 端口 compose 默认仅绑回环(127.0.0.1)——保持该约束,勿映射到 0.0.0.0。
## 卷与备份
| 卷/挂载 | 内容 | 备份 |
|---|---|---|
| mysql_data | 数据库 | 定期 mysqldump / 快照 |
| redis_data | 缓存 | 可丢(重建即降级恢复) |
| ../upload(bind,应用 rw / nginx ro) | 上传文件 | 宿主目录定期同步 |
## 前端容器化(可选)
前端为静态产物,推荐宿主 Nginx 或独立静态镜像服务 dist/,`/api` 反代 admin-server。
## 升级
```bash
docker compose --env-file .env -f deploy/docker-compose.yaml pull # 如用镜像仓库
docker compose --env-file .env -f deploy/docker-compose.yaml up -d --build admin-server # 滚动重建应用
```
应用优雅关闭保证在途请求排空。
## 相关
- [2.7 Docker 快速体验](/zh/quickstart/docker.html)(开发体验版)
- [11.8 安全加固清单](/zh/deploy/security.html)