Files
Nexus Deploy 5a56e5a8cb fix(1panel): 安装向导脱敏、配置一致性与 nx update 门控回滚
- /state 白名单脱敏;init-db db_port 修复;connection-check 后清空 redis_pass
- install.html sessionStorage token 与无 token 友好提示
- nx update: 镜像 import 门控、健康失败自动回滚、PENDING=0 回写、卷双写
- Redis 容器改名密码迁移;备份失败默认 WARN;update.sh 管道 ROOT 回退
2026-06-06 17:40:30 +08:00

2.6 KiB
Raw Permalink Blame History

Nexus Docker

前置

快速启动(正常模式)

# 1. 生成密钥(写入 docker/.env,已 gitignore
python docker/generate_env.py

# 2. 构建并启动
docker compose up -d --build

# 3. 健康检查
curl -s http://localhost:8600/health   # 期望: ok

# 4. 打开 SPA
# http://localhost:8600/app/

默认管理员需在安装向导或已有 DB 中配置;若 DB 为空且未跑过 install,可删卷后走安装模式。

安装向导模式

不创建 docker/.env(或清空 NEXUS_SECRET_KEY)时,应用以 安装模式 启动:

完成向导后 .env 会写入容器;nexus-state 卷会在重启时恢复配置。

常用命令

docker compose logs -f nexus
docker compose down          # 停止,保留数据卷
docker compose down -v       # 停止并删除数据卷(清空 DB
docker compose build --no-cache nexus

服务

环境 Compose 服务 说明
本地开发 docker-compose.yml nexus + mysql + redis 一键本地联调
生产 docker-compose.prod.yml 仅 nexus MySQL/Redis 宿主机或 1Panel 自建

生产 1Paneldocker/.env.prod 可含 NEXUS_REDIS_URL(供 nx update 探测同步),不经 Compose 注入容器;运行时 Redis/MySQL URL 以安装向导写入的 /app/.envnexus-state 卷)为准。MySQL NEXUS_DATABASE_URL 仅由向导步骤 3 写入。

生产注意

  • 修改 NEXUS_* 为强密码;MySQL 使用自建库强密码。
  • 建议前置 Nginx/TLS,仅暴露 443。
  • 多实例部署需共享 MySQL、Redis;后台任务由 Redis primary lock 保证单实例执行。

1Panel 生产(Compose + OpenResty

cp docker/.env.prod.example docker/.env.prod   # 从宝塔 .env 迁入密钥
docker compose -f docker/docker-compose.prod.yml --env-file docker/.env.prod up -d --build
  • 镜像:Dockerfile.prod(含 npm ci + vite build + web/app/install.html 安装向导
  • 仅绑定 127.0.0.1:8600OpenResty 反代见 deploy/1panel/openresty-nexus.conf.example
  • 2C8G 调优docker/profiles/2c8g.envNEXUS_MEM_LIMIT + NEXUS_DB_POOL_SIZE=30);外置 MySQL 可参考 docker/mysql-prod-2c8g.cnf 手工调优
  • 完整迁移步骤:docs/design/plans/2026-06-04-1panel-docker-production.md
  • 一键安装:bash deploy/install-1panel-docker.sh
  • 一键升级:bash deploy/upgrade-1panel-docker.sh--check 仅查更新)

详见 docs/design/specs/2026-06-03-docker-design.md