docker
This commit is contained in:
52
docker/README.md
Normal file
52
docker/README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Docker 部署说明
|
||||
|
||||
## 前置条件
|
||||
|
||||
- 安装 [Docker Desktop](https://www.docker.com/products/docker-desktop/)(Windows 需开启 WSL2)。
|
||||
- 项目根目录:`auto-solution`(与 `Dockerfile`、`docker-compose.yml` 同级)。
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. **准备数据库脚本**(首次必做)
|
||||
将 SQL 放到 `docker/mysql/init/`,详见 [mysql/init/README.md](mysql/init/README.md)。
|
||||
|
||||
2. **环境变量(可选)**
|
||||
|
||||
```bash
|
||||
copy .env.example .env
|
||||
```
|
||||
|
||||
按需修改 `MYSQL_ROOT_PASSWORD`、`REDIS_PASSWORD` 等;若 Redis 设密码,需在 `.env` 中填写 `REDIS_PASSWORD`,并与应用一致。
|
||||
|
||||
3. **构建并启动**
|
||||
|
||||
```bash
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
4. **访问**
|
||||
|
||||
- 后端:<http://localhost:1777>(默认映射,可在 `.env` 改 `APP_PORT`)
|
||||
- MySQL:宿主机端口默认 `3307`(避免与本机 3306 冲突)
|
||||
- Redis:宿主机端口默认 `6379`(与容器内端口一致,可通过 `.env` 中 `REDIS_PORT` 修改)
|
||||
|
||||
## 仅构建应用镜像
|
||||
|
||||
```bash
|
||||
docker build -t auto-solution-admin:latest .
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
- 容器内使用 Spring 配置:`druid` + `docker`,见 `auto-solution-admin/src/main/resources/application-docker.yml`。
|
||||
- 数据源与 Redis 主机名在 Compose 中为 `mysql`、`redis`,勿改服务名除非同步改配置。
|
||||
|
||||
## 上传文件
|
||||
|
||||
附件目录使用数据卷 `app_upload`,持久化在 Docker volume `autosolution_app_upload`(名称前缀随项目目录可能略有不同)。
|
||||
|
||||
## 常见问题
|
||||
|
||||
- **应用连不上库**:确认 MySQL 健康检查已通过;`init` SQL 是否已执行(空库首次启动才会执行)。
|
||||
- **Redis 认证失败**:本仓库 `application.yml` 里开发环境 Redis 带密码;Compose 中 Redis 默认无密码。若需密码,在 `.env` 设置 `REDIS_PASSWORD`,并确保与 `application-docker.yml` 中 `REDIS_PASSWORD` 环境变量一致(已支持 `${REDIS_PASSWORD}`)。
|
||||
0
docker/mysql/init/.gitkeep
Normal file
0
docker/mysql/init/.gitkeep
Normal file
30
docker/mysql/init/README.md
Normal file
30
docker/mysql/init/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# MySQL 首次初始化 SQL
|
||||
|
||||
MySQL 官方镜像会在**数据目录为空**时,按文件名顺序执行本目录下:
|
||||
|
||||
- `*.sql`
|
||||
- `*.sql.gz`
|
||||
- `*.sh`
|
||||
|
||||
## 你需要做的事
|
||||
|
||||
1. 从本机现有库导出(示例):
|
||||
|
||||
```bash
|
||||
mysqldump -uroot -p --databases autosolution_db --single-transaction --quick > docker/mysql/init/01-autosolution_db.sql
|
||||
```
|
||||
|
||||
2. 或放入若依官方 `ry_*.sql` 与 Quartz 等脚本,**按依赖顺序**命名前缀(如 `01-`、`02-`)。
|
||||
|
||||
3. 若容器/卷里已经有数据,这些脚本**不会再次执行**。需要重新初始化时:
|
||||
|
||||
```bash
|
||||
docker compose down -v
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
注意:`-v` 会删除 `mysql_data` 卷,请确认无重要数据。
|
||||
|
||||
## 字符集
|
||||
|
||||
`docker-compose.yml` 中 MySQL 已配置 `utf8mb4`,导入脚本建议同为 UTF-8。
|
||||
1413
docker/mysql/init/_localhost-2026_04_09_10_53_40-dump.sql
Normal file
1413
docker/mysql/init/_localhost-2026_04_09_10_53_40-dump.sql
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user