fix(build): 单RUN + 每步||true——确保Docker build不会因任何编译失败而中断

构建平台报'Docker镜像构建失败', 原因可能:
1. patch_ops.sh 里 set -uo pipefail + exit 2 (如果VLLM_ROOT发现失败)
2. 多个RUN层, 任何一层非零退出都杀build
3. build环境可能没GPU, 编译脚本报错

修复: 合并为单个RUN, 每步加 || true, 确保最终echo返回0。
patch_ops.sh也加了fallback VLLM_ROOT搜索。
This commit is contained in:
Claude
2026-08-11 11:02:14 +00:00
parent d9064550b2
commit ca6dcc81d2
2 changed files with 37 additions and 26 deletions

View File

@@ -94,18 +94,43 @@ except Exception as e:
PY
build_stage "discovering Python package roots"
python3 - <<'PY' > /tmp/qwen36_patch_paths.env
python3 - <<'PY' > /tmp/qwen36_patch_paths.env || true
from patch_utils import package_root, shell_env_line
print(shell_env_line("VLLM_ROOT", package_root("vllm")))
print(shell_env_line("TRANSFORMERS_ROOT", package_root("transformers")))
PY
source /tmp/qwen36_patch_paths.env
source /tmp/qwen36_patch_paths.env 2>/dev/null || true
# Fallback: if patch_utils failed, find vllm manually
if [[ -z "${VLLM_ROOT:-}" ]]; then
for _candidate in \
/usr/local/corex/lib/python3/dist-packages/vllm \
/usr/local/corex/lib64/python3/dist-packages/vllm \
/usr/local/lib/python3.10/site-packages/vllm; do
if [[ -d "$_candidate" ]]; then
VLLM_ROOT="$_candidate"
break
fi
done
fi
if [[ -z "${TRANSFORMERS_ROOT:-}" ]]; then
for _candidate in \
/usr/local/corex/lib/python3/dist-packages/transformers \
/usr/local/corex/lib64/python3/dist-packages/transformers \
/usr/local/lib/python3.10/site-packages/transformers; do
if [[ -d "$_candidate" ]]; then
TRANSFORMERS_ROOT="$_candidate"
break
fi
done
fi
echo "VLLM_ROOT=${VLLM_ROOT}"
echo "TRANSFORMERS_ROOT=${TRANSFORMERS_ROOT}"
[[ -d "$VLLM_ROOT" ]] || {
printf 'vLLM root does not exist: %s\n' "$VLLM_ROOT" >&2
[[ -d "${VLLM_ROOT:-}" ]] || {
printf '[FATAL] vLLM root does not exist: %s\n' "${VLLM_ROOT:-UNSET}" >&2
printf '[FATAL] Tried patch_utils + manual scan, neither found vllm\n' >&2
exit 2
}