更新Docker

This commit is contained in:
小蚂蚁云
2026-10-26 09:07:19 +08:00
parent fdbeae092a
commit 988123cdeb
16 changed files with 1061 additions and 140 deletions
@@ -14,7 +14,7 @@
│ ├─ mysql:8.0(127.0.0.1:3306 仅回环绑定)
│ └─ redis:7(127.0.0.1:6379 仅回环绑定)
│
└─ :8081 ──→ nginx(只读挂载 upload 卷,直供上传文件,
└─ :8081 ──→ nginx(只读挂载 upload 目录,直供上传文件,
temp 目录封禁)
```
@@ -25,13 +25,11 @@
cp .env.example .env
# 按需修改数据库/Redis 密码、JWT 密钥、文件域名
# 2. 构建并启动
cd deploy
docker compose up -d --build
# 2. 在项目根构建并启动(根 .env 须经 --env-file 显式传入)
docker compose --env-file .env -f deploy/docker-compose.yaml up -d --build
# 3. 初始化数据库(首次)
docker exec -i easygoadmin-mysql mysql -uroot -p<密码> \
easygoadmin.gin.elevue < ../document/mysql/easygoadmin.gin.elevue.sql
# 3. 数据库无需手工初始化:MySQL 数据卷为空时
# 自动导入 document/mysql 定稿脚本(仅首次执行一次)
```
## 环境变量映射
@@ -49,24 +47,24 @@ environment:
## 卷与持久化
| 卷 | 挂载点 | 说明 |
| 卷/挂载 | 挂载点 | 说明 |
|---|---|---|
| mysql_data | MySQL 数据目录 | 数据库持久化 |
| redis_data | Redis 数据目录 | 缓存持久化 |
| upload_data | 应用 /data/upload + nginx 只读挂载 | 上传文件,nginx 直供 |
| ../upload(bind) | 应用 /data/upload(rw)+ nginx(ro) | 上传文件,nginx 直供;宿主目录已有文件直接可见 |
## 镜像要点
`deploy/Dockerfile` 为多阶段构建:
- 编译阶段:`golang:1.27-alpine`,`CGO_ENABLED=0` + 去符号表压缩体积
- 运行阶段:`alpine:3.20` + 时区与证书,仅带二进制、config、resource
- 运行阶段:`alpine:3.22` + 时区与证书,非 root 运行,仅带二进制、config、resource、templates;内置健康检查(/api/health)
## 验证
```bash
docker compose ps # 四容器 healthy
curl http://127.0.0.1:8000/api/health # 应用就绪
docker compose --env-file .env -f deploy/docker-compose.yaml ps # 四容器 healthy
curl http://127.0.0.1:8000/api/health # 应用就绪
```
生产环境的完整部署清单(含 Nginx 站点配置、安全加固)见 [第 11 章 运维部署](/zh/deploy/checklist.html)。