4.2 Docker 部署
Docker 部署
推荐使用官方镜像 docker.cnb.cool/mliev/dwz/dwz-server:latest,通过 docker-compose 管理。
1. 准备目录
mkdir mliev-dwz && cd mliev-dwz
mkdir -p config data
chmod 755 ./config ./data./config 目录用于持久化配置文件、SQLite 数据库与日志,必须挂载进容器。
./data 目录用于持久化运行时数据,当前主要包括品牌 Logo 上传文件。Logo 默认保存到容器内 data/uploads/branding,Docker 部署时需要挂载到 /app/data,避免容器重建后上传文件丢失。
2. 最小 docker-compose.yml(独立模式)
version: '3.8'
services:
dwz-server:
container_name: dwz-server
image: docker.cnb.cool/mliev/dwz/dwz-server:latest
restart: always
ports:
- "8080:8080"
volumes:
- "./config/:/app/config/"
- "./data/:/app/data/"
environment:
- TZ=Asia/Shanghai
- GIN_MODE=release独立模式默认使用 SQLite 与本地缓存,适合个人或小型部署。首次启动后访问 http://{服务器IP}:8080 按安装向导完成初始化。
3. 生产模式 compose 示例(MySQL + Redis)
version: '3.8'
services:
dwz-server:
image: docker.cnb.cool/mliev/dwz/dwz-server:latest
restart: always
ports:
- "8080:8080"
volumes:
- "./config/:/app/config/"
- "./data/:/app/data/"
environment:
- TZ=Asia/Shanghai
- SERVER_MODE=release
- DATABASE_DRIVER=mysql
- DATABASE_HOST=mysql
- DATABASE_PORT=3306
- DATABASE_NAME=dwz_db
- DATABASE_USERNAME=dwz
- DATABASE_PASSWORD=please-change-me
- CACHE_DRIVER=redis
- ID_GENERATOR_DRIVER=redis
- REDIS_HOST=redis
- REDIS_PORT=6379
- JWT_SECRET=please-change-me
- SHORTLINK_DOMAIN=https://your.short.domain
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
restart: always
environment:
- MYSQL_DATABASE=dwz_db
- MYSQL_USER=dwz
- MYSQL_PASSWORD=please-change-me
- MYSQL_ROOT_PASSWORD=please-change-me-too
volumes:
- "./data/mysql:/var/lib/mysql"
redis:
image: redis:7-alpine
restart: always
volumes:
- "./data/redis:/data"4. 品牌 Logo 上传目录
后台上传的品牌 Logo 默认保存到:
data/uploads/branding在 Docker 容器内对应路径通常是:
/app/data/uploads/branding因此 compose 中需要保留:
volumes:
- "./data/:/app/data/"上传成功后,系统返回的访问路径格式为:
/uploads/branding/<hash>.<ext>支持的图片类型为 png、jpeg、webp、gif,默认最大 2MB。前端上传 Logo 时会先进行裁剪,裁剪后的文件再上传到该目录。
5. 启动与管理
docker-compose up -d # 后台启动
docker-compose ps # 查看状态
docker-compose logs -f # 跟踪日志
docker-compose restart # 重启
docker-compose down # 停止并移除容器(数据在挂载卷中保留)6. 首次访问
浏览器打开 http://{服务器IP}:8080,按安装向导完成初始化。
注意:生产模式下安装向导会检测数据库与 Redis 连通性,请确保相关服务先启动成功。