# Docker 离线部署说明(方式 A) 执行 `docker compose up -d` 即可启动。 ## 1. 交付清单 请将以下内容放在同一目录(示例:`app/`): - `docker-compose.yml` - `.env`(或将 `.env.example` 复制为 `.env` 后修改) - `bundle-images.tar`(包含 `auto-solution-admin`、`mysql:8.0`、`redis:7-alpine`) - `docker/mysql/init/01-ruoyi-table.sql` - `docker/mysql/init/02-ruoyi-extra.sql` - `docker/mysql/init/03-data.sql` 目录示例: ```text app/ ├─ docker-compose.yml ├─ .env ├─ bundle-images.tar └─ docker/ └─ mysql/ └─ init/ ├─ 00-create-db.sql ├─ 03-data.sql ``` ## 2. 首次部署 在 `app` 目录执行: ```bash docker load -i bundle-images.tar docker compose down -v docker compose up -d ``` 说明: - `down -v` 会删除旧数据卷,确保 MySQL 首次初始化时执行 `docker/mysql/init` 下的 SQL。 - SQL 执行顺序按文件名字典序,务必保持 `01 -> 02 -> 03`。 ## 3. 启动验证 ```bash docker ps docker inspect autosolution-mysql --format '{{.State.Health.Status}}' docker logs --tail 100 autosolution-mysql docker logs --tail 100 autosolution-app ``` 期望结果: - `autosolution-mysql` 状态为 `healthy` - `autosolution-app` 状态为 `Up` ## 4. 访问地址 - 后端默认端口:`1777` - 访问地址:`http://<服务器IP>:1777` ## 5. 常见问题 ### 5.1 `Table 'autosolution_db.sys_config' doesn't exist` 原因:初始化 SQL 未执行或执行失败。 处理: 1. 确认 `docker/mysql/init` 下 SQL 文件存在且顺序正确 2. 执行: ```bash docker compose down -v docker compose up -d ``` 3. 查看 MySQL 日志定位 SQL 报错: ```bash docker logs --tail 300 autosolution-mysql ``` ### 5.2 `dependency failed to start: container autosolution-mysql is unhealthy` 原因:MySQL 未通过健康检查(通常是 SQL 未执行完成或报错)。 处理: ```bash docker logs --tail 300 autosolution-mysql ``` 根据日志修复 SQL 后重新 `down -v` 再启动。 ## 6. 版本升级 替换新的 `bundle-images.tar`(及必要 SQL)后执行: ```bash docker load -i bundle-images.tar docker compose down docker compose up -d ``` 如果本次升级包含库初始化变更并要求重建,请改用: ```bash docker compose down -v docker compose up -d ```