#!/bin/bash set -e # 1. 初始化环境 (原有的逻辑:注入用户自定义算子) if [ -d "/opt/runtime/user" ]; then cp -r /opt/runtime/user/* /opt/runtime/deepdata/ops/user 2>/dev/null || true fi # 2. 根据 RAY_MODE 环境变量决定启动模式 if [ "${RAY_MODE}" = "head" ]; then echo "🚀 Starting Ray Head..." # ✅ 修复 Head 分支: # Ray 2.x 已废弃 CLI 参数 --redis-address,改为自动读取环境变量 RAY_REDIS_ADDRESS。 # 只要确保 docker-compose.yml 中配置了 RAY_REDIS_ADDRESS 环境变量即可。 exec ray start --head \ --port=${RAY_HEAD_PORT:-6379} \ --redis-password=${RAY_REDIS_PASSWORD} \ --dashboard-host=0.0.0.0 \ --block elif [ "${RAY_MODE}" = "worker" ]; then echo "🚀 Starting Ray Worker connecting to ${RAY_HEAD_ADDRESS}..." # ✅ 修复 Worker 分支: # Ray 2.x 移除了 --worker 参数。只要不传 --head,默认即为 Worker 模式。 exec ray start \ --address=${RAY_HEAD_ADDRESS} \ --redis-password=${RAY_REDIS_PASSWORD} \ --num-cpus=${NUM_CPUS:-4} \ --block else echo "🔧 Starting Runtime (Legacy Mode / Job Execution)..." # 默认行为:执行 docker-compose.yml command 传入的指令,或 Ray Job 的入口点 exec "$@" fi