纯增量部署、host 网络、复用既有 MySQL nacos 库;鉴权开 token。探针 200 绿,内存 <700M 不挤 RAGflow。 端点/密钥写回 docs/内网凭据与端点.md。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
54 lines
3.1 KiB
YAML
54 lines
3.1 KiB
YAML
# =============================================================================
|
|
# Nacos 2.4.3 自托管 —— standalone + 外部 MySQL 后端 + lean JVM(切片一 阶段〇 B1)
|
|
# -----------------------------------------------------------------------------
|
|
# 配置控制面设计 §3.7:game-cloud 本是 Spring Cloud Alibaba,Nacos 是其原生生产基建
|
|
# (配置中心 + 服务发现)。自托管在 mini-infra,纯增量、不动既有 9 个容器。
|
|
#
|
|
# 三条部署纪律都编进了这里:
|
|
# - MODE=standalone:镜像默认是 cluster 模式(实测启动 banner "Running in cluster mode"),
|
|
# 单机自托管必须显式压成 standalone,否则起不来。
|
|
# - lean JVM 512m:mini-infra 可用内存有限,Nacos 默认 -Xmx2g 会挤压 RAGflow/MySQL。
|
|
# standalone + 单操作者(dev/MVP)512m 足够,显式压死默认 2g。
|
|
# - network_mode: host:与既有 infra-* 容器一致,直连本机 3306 MySQL;占 8848(HTTP)、
|
|
# 9848(gRPC client)、9849(gRPC server)三个 host 端口(实测均未被既有容器占用)。
|
|
#
|
|
# 密钥注入:全部经 ${VAR} 从同目录 .env 读取(compose 起时自动加载),compose 文件本身
|
|
# 不落任何明文密钥;.env 只在服务器上 chmod 600 存在、不入仓。密钥权威副本见
|
|
# docs/内网凭据与端点.md(内网阶段密钥进文档铁律)。.env 需含:
|
|
# MYSQL_ROOT_PW / NACOS_AUTH_TOKEN / NACOS_AUTH_IDENTITY_KEY / NACOS_AUTH_IDENTITY_VALUE
|
|
#
|
|
# admin 账号初始化:v2.4.3 已移除内置 nacos/nacos 默认账号,且该镜像**不认**
|
|
# NACOS_AUTH_ADMIN_PASSWORD 环境变量(实测 docker-startup.sh 无此映射)。故首启后需调一次
|
|
# 首启 API 建 admin(用户名固定 nacos、仅首次生效):
|
|
# curl -X POST 'http://127.0.0.1:8848/nacos/v1/auth/users/admin' -d 'password=<见凭据文档>'
|
|
# =============================================================================
|
|
services:
|
|
nacos:
|
|
image: nacos/nacos-server:v2.4.3
|
|
container_name: infra-nacos
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
environment:
|
|
MODE: standalone
|
|
PREFER_HOST_MODE: ip
|
|
NACOS_SERVER_PORT: "8848"
|
|
# ── lean JVM:standalone 512m 够用,显式压死默认 2g ──
|
|
JVM_XMS: "512m"
|
|
JVM_XMX: "512m"
|
|
JVM_XMN: "256m"
|
|
# ── MySQL 后端(复用既有 mini-infra 实例的 nacos 库,不新增 MySQL 实例)──
|
|
SPRING_DATASOURCE_PLATFORM: mysql
|
|
MYSQL_SERVICE_HOST: 100.64.0.8
|
|
MYSQL_SERVICE_PORT: "3306"
|
|
MYSQL_SERVICE_DB_NAME: nacos
|
|
MYSQL_SERVICE_USER: root
|
|
MYSQL_SERVICE_PASSWORD: "${MYSQL_ROOT_PW}"
|
|
MYSQL_SERVICE_DB_PARAM: "characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"
|
|
# ── 鉴权:生产基建不裸奔,开 token + server identity(密钥见凭据文档)──
|
|
NACOS_AUTH_ENABLE: "true"
|
|
NACOS_AUTH_TOKEN: "${NACOS_AUTH_TOKEN}" # token.secret.key:base64、解码后 ≥32 字节
|
|
NACOS_AUTH_IDENTITY_KEY: "${NACOS_AUTH_IDENTITY_KEY}" # server 间鉴权请求头名
|
|
NACOS_AUTH_IDENTITY_VALUE: "${NACOS_AUTH_IDENTITY_VALUE}"
|
|
volumes:
|
|
- ./data/logs:/home/nacos/logs
|