Files
Nexus/docs/changelog/2026-06-04-external-mysql-compose.md
T
2026-07-08 22:31:31 +08:00

49 lines
2.0 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.
# 2026-06-04 — 生产 Compose 移除外置 MySQL
## 摘要
生产 Docker 栈从「MySQL + Nexus」改为**仅 Nexus 容器**MySQL 与 Redis 均由用户在宿主机或 1Panel 自行安装,安装向导步骤 3 填写连接信息。
## 动机
- 用户希望数据库自行创建与管理,不随安装脚本附带 MySQL 容器与自动密码。
- 与已移除外置 Redis Compose 服务的设计一致,降低 bind mount / 卷冲突风险。
## 涉及文件
| 文件 | 变更 |
|------|------|
| `docker/docker-compose.prod.yml` | 移除 `mysql` 服务与数据卷 |
| `docker/.env.prod.example` | 移除 `MYSQL_*` |
| `docker/profiles/*.env` | 移除 `MYSQL_CNF_FILE` 等 |
| `docker/entrypoint.sh` | MySQL 等待改为 `host.docker.internal`(可选) |
| `scripts/generate_nexus_secrets.py` | 新机仅生成 `NEXUS_*` |
| `deploy/nexus-1panel.sh` | 备份改读外置 `NEXUS_DATABASE_URL` |
| `deploy/uninstall-mysql-compose.sh` | 卸载遗留 Compose MySQL 容器 |
| `deploy/README-1panel.md` / `docker/README.md` | 文档更新 |
| `web/app/install.html` | MySQL 自建说明 |
| `server/api/install.py` | Docker 默认 `db_host=host.docker.internal` |
## 迁移 / 重启
```bash
cd /opt/nexus && git pull
bash deploy/uninstall-mysql-compose.sh # 可选:删旧 Compose MySQL
bash deploy/nexus-1panel.sh upgrade
bash deploy/sync-install-wizard-to-container.sh
```
自建 MySQL 后完成 `/app/install.html` 步骤 3(主机 `host.docker.internal`)。
## 验证
- `docker compose -f docker/docker-compose.prod.yml config` 仅含 `nexus` 服务
- `python3 scripts/generate_nexus_secrets.py write-prod --fresh` 输出无 `MYSQL_*`
- 安装向导步骤 3 可连接外置 MySQL 并完成 `init-db`
- `docker ps``nexus-prod-mysql-*``nexus-1panel.sh upgrade` 自动 `--remove-orphans`
## 2026-06-04 补充
- `install` / `upgrade` 前自动执行 `uninstall-mysql-compose.sh`
- `compose up` 增加 `--remove-orphans`,从 `nexus-prod` 项目移除已删服务的孤儿容器