#!/bin/bash # 容器启动时自动将 backend 代码同步到 253 训练节点 REMOTE_USER="${COMPUTE_NODE_SSH_USER:-root}" REMOTE_HOST="${COMPUTE_NODE_HOST}" REMOTE_PASS="${COMPUTE_NODE_SSH_PASSWORD}" REMOTE_DIR="/root/Fine-tuning/backend" if [ -n "$REMOTE_HOST" ]; then echo "=> Syncing backend code to compute node ${REMOTE_HOST} ..." # 使用 --no-o --no-g 避免 chown 失败,去掉 --delete 避免无权删除远端文件 if [ -n "$REMOTE_PASS" ]; then sshpass -p "$REMOTE_PASS" rsync -avz --no-o --no-g --ignore-times \ --exclude 'data' \ -e "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5" \ /app/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/ else rsync -avz --no-o --no-g --ignore-times \ --exclude 'data' \ -e "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5" \ /app/ ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/ fi echo "=> Sync done." else echo "=> No compute node configured, skipping code sync." fi # 启动主进程 exec "$@"