Switch to bridge networking with fixed container port 80 and served name llm
- run.sh: bridge + -p ${HOST_PORT:-24396}:80, health check uses host port
- entrypoint.sh: PORT defaults to 80, SERVED_NAME defaults to llm
detected port/served name become log hints only
- verify.sh: read host port from port bindings, expect model name llm
- docker-compose.yml: ports mapping instead of network_mode host
- README: update tables, commands and rationale
This commit is contained in:
40
verify.sh
40
verify.sh
@@ -21,7 +21,7 @@ cd "$(dirname "$0")"
|
||||
|
||||
MODEL_DIR="${MODEL_HOST_DIR:-}"
|
||||
CONTAINER="${CONTAINER:-}"
|
||||
PORT="${PORT:-}"
|
||||
PORT="${PORT:-${HOST_PORT:-}}"
|
||||
SERVED_NAME="${SERVED_NAME:-}"
|
||||
BASE_URL="${BASE_URL:-}"
|
||||
TIMEOUT="${TIMEOUT:-180}"
|
||||
@@ -101,7 +101,21 @@ for m in mounts:
|
||||
break
|
||||
' || true)"
|
||||
fi
|
||||
[[ -z "${PORT}" ]] && PORT="$(container_env "${CONTAINER}" PORT)"
|
||||
# 宿主端口来自端口映射(-p),不是容器内的 PORT(现在恒为 80)
|
||||
if [[ -z "${PORT}" ]]; then
|
||||
PORT="$(docker inspect "${CONTAINER}" --format '{{json .HostConfig.PortBindings}}' 2>/dev/null \
|
||||
| python3 -c '
|
||||
import json, sys
|
||||
try:
|
||||
binds = json.load(sys.stdin) or {}
|
||||
except Exception:
|
||||
sys.exit(0)
|
||||
for container_port, mapping in binds.items():
|
||||
if mapping:
|
||||
print(mapping[0].get("HostPort", ""))
|
||||
break
|
||||
' || true)"
|
||||
fi
|
||||
[[ -z "${SERVED_NAME}" ]] && SERVED_NAME="$(container_env "${CONTAINER}" SERVED_NAME)"
|
||||
fi
|
||||
|
||||
@@ -111,7 +125,7 @@ MAVERICK_DEFAULT="/mnt/disk0/models/LLM-Research/Llama-4-Maverick-17B-128E-Instr
|
||||
|
||||
# 没有 docker 时(例如在 ugly_hopper 内运行),按端口探测正在运行的服务。
|
||||
if [[ -z "${CONTAINER}" && -z "${PORT}" && -z "${MODEL_DIR}" && -z "${BASE_URL}" ]]; then
|
||||
for candidate_port in 8091 8092; do
|
||||
for candidate_port in 24396 8091 8092; do
|
||||
if curl -fsS --max-time 2 "http://127.0.0.1:${candidate_port}/health" >/dev/null 2>&1; then
|
||||
PORT="${candidate_port}"
|
||||
break
|
||||
@@ -119,8 +133,9 @@ if [[ -z "${CONTAINER}" && -z "${PORT}" && -z "${MODEL_DIR}" && -z "${BASE_URL}"
|
||||
done
|
||||
fi
|
||||
|
||||
# 从 served name 反推模型目录(方便 --base-url + --served-name 的用法)。
|
||||
if [[ -z "${MODEL_DIR}" && -n "${SERVED_NAME}" ]]; then
|
||||
# 模型名现在恒为 llm(AGENTS.md 5.5),不能再靠它反推变体。
|
||||
# 兼容旧用法:如果显式传了带变体的 served name,仍然尝试反推目录。
|
||||
if [[ -z "${MODEL_DIR}" && -n "${SERVED_NAME}" && "${SERVED_NAME}" != "llm" ]]; then
|
||||
case "${SERVED_NAME}" in
|
||||
*maverick*)
|
||||
if [[ -f "${MAVERICK_DEFAULT}/config.json" ]]; then
|
||||
@@ -135,10 +150,9 @@ if [[ -z "${MODEL_DIR}" && -n "${SERVED_NAME}" ]]; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# 端口也不再区分变体(宿主端口默认统一 24396),只按目录存在性取默认值。
|
||||
if [[ -z "${MODEL_DIR}" && -z "${BASE_URL}" ]]; then
|
||||
if [[ "${PORT}" == "8092" && -f "${MAVERICK_DEFAULT}/config.json" ]]; then
|
||||
MODEL_DIR="${MAVERICK_DEFAULT}"
|
||||
elif [[ -f "${SCOUT_DEFAULT}/config.json" ]]; then
|
||||
if [[ -f "${SCOUT_DEFAULT}/config.json" ]]; then
|
||||
MODEL_DIR="${SCOUT_DEFAULT}"
|
||||
elif [[ -f "${MAVERICK_DEFAULT}/config.json" ]]; then
|
||||
MODEL_DIR="${MAVERICK_DEFAULT}"
|
||||
@@ -163,13 +177,13 @@ fi
|
||||
if [[ -n "${DETECT_JSON}" ]]; then
|
||||
KIND="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["kind"])' <<< "${DETECT_JSON}")"
|
||||
DETECTED_PORT="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["port"])' <<< "${DETECT_JSON}")"
|
||||
DETECTED_NAME="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["served_name"])' <<< "${DETECT_JSON}")"
|
||||
[[ -z "${PORT}" ]] && PORT="${DETECTED_PORT}"
|
||||
[[ -z "${SERVED_NAME}" ]] && SERVED_NAME="${DETECTED_NAME}"
|
||||
# DETECTED_PORT / served_name 只是变体信息,不作为实际端口和模型名:
|
||||
# 容器内恒 80,宿主端口默认 24396,模型名恒 llm(AGENTS.md 5.2 / 5.4 / 5.5)。
|
||||
DETECTED_HOST_PORT_HINT="${DETECTED_PORT:-}"
|
||||
fi
|
||||
|
||||
PORT="${PORT:-8091}"
|
||||
SERVED_NAME="${SERVED_NAME:-llama4}"
|
||||
PORT="${PORT:-24396}"
|
||||
SERVED_NAME="${SERVED_NAME:-llm}"
|
||||
BASE_URL="${BASE_URL:-http://127.0.0.1:${PORT}}"
|
||||
BASE_URL="${BASE_URL%/}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user