diff --git a/deploy-ai.sh b/deploy-ai.sh index ae6626f..8187ed6 100755 --- a/deploy-ai.sh +++ b/deploy-ai.sh @@ -464,8 +464,24 @@ build_on_server() { log "重建容器..." local build_flag="" ssh txjp "test -f $REMOTE_DIR/Dockerfile" 2>/dev/null && build_flag="--build" + + # Docker 无法跟随指向构建上下文外的符号链接,临时将 shared 符号链接替换为实际目录 + ssh txjp "cd $REMOTE_DIR && if [ -L shared ]; then + target=\$(readlink shared) + rm shared + cp -r \$target shared + echo 'shared 符号链接已临时替换为实际目录' + fi" + ssh txjp "cd $REMOTE_DIR && docker compose up -d $build_flag && docker compose restart" + # 恢复 shared 符号链接(仅当目录非符号链接且上级 shared 存在时) + ssh txjp "cd $REMOTE_DIR && if [ -d shared ] && [ ! -L shared ] && [ -d ../shared ]; then + rm -rf shared + ln -s ../shared shared + echo 'shared 符号链接已恢复' + fi" + # 7. 清理构建产生的悬空镜像和缓存(根据磁盘使用率动态调整) log "清理构建缓存..." # 清理悬空镜像(无标签或未被引用的中间层)