FROM lampon/omnibox:latest # 安装系统依赖,并添加 --break-system-packages 以允许安装 huggingface_hub RUN apt-get update && apt-get install -y python3 python3-pip socat && \ pip3 install --no-cache-dir huggingface_hub --break-system-packages && \ rm -rf /var/lib/apt/lists/* WORKDIR /app # 备份脚本 RUN cat > /usr/local/bin/backup.sh << 'EOF' #!/bin/bash set -e if [ -z "$HF_DATASET" ] || [ -z "$HF_TOKEN" ]; then echo "❌ 缺少 HF_DATASET 或 HF_TOKEN 环境变量,跳过备份" exit 0 fi echo "$(date): 📦 开始备份 omnibox 数据..." mkdir -p /tmp/omnibox_backup if [ -d /app/data ]; then cp -r /app/data /tmp/omnibox_backup/ echo "✅ 已复制 /app/data" else echo "⚠️ 未找到 /app/data 目录,跳过数据复制" fi cd /tmp tar -czf omnibox_backup.tar.gz omnibox_backup BACKUP_FILE="/tmp/omnibox_backup.tar.gz" TIMESTAMP=$(date +%Y%m%d_%H%M%S) REMOTE_PATH="omnibox_backup_${TIMESTAMP}.tar.gz" python3 < /usr/local/bin/start.sh << 'EOF' #!/bin/bash set -e # 恢复备份 if [ -n "$HF_DATASET" ] && [ -n "$HF_TOKEN" ]; then echo "🔄 检查是否存在可恢复的备份..." python3 </dev/null' EXIT wait $MAIN_PID EOF RUN chmod +x /usr/local/bin/start.sh EXPOSE 7860 CMD ["/usr/local/bin/start.sh"]