1bd69077a2
Run uninstall-mysql-compose before install/upgrade and pass --remove-orphans so nexus-prod mysql orphans are stopped after the service is dropped from compose. Co-authored-by: Cursor <cursoragent@cursor.com>
2.0 KiB
2.0 KiB
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 |
迁移 / 重启
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.shcompose up增加--remove-orphans,从nexus-prod项目移除已删服务的孤儿容器