Spaces:
Paused
Paused
Update Dockerfile
Browse files- Dockerfile +19 -16
Dockerfile
CHANGED
|
@@ -5,7 +5,7 @@ ENTRYPOINT []
|
|
| 5 |
|
| 6 |
USER root
|
| 7 |
|
| 8 |
-
# 2. 安装 Python3
|
| 9 |
RUN (apk add --no-cache python3 curl || (apt-get update && apt-get install -y python3 curl))
|
| 10 |
|
| 11 |
WORKDIR /app
|
|
@@ -13,34 +13,37 @@ WORKDIR /app
|
|
| 13 |
# 3. 权限设置
|
| 14 |
RUN mkdir -p /app/downloads && chmod 777 /app/downloads
|
| 15 |
|
| 16 |
-
# 4.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
RUN echo '#!/bin/sh' > /app/start.sh && \
|
| 18 |
-
echo 'echo "---
|
| 19 |
echo '' >> /app/start.sh && \
|
| 20 |
-
# --- 步骤A:
|
| 21 |
-
echo 'echo "1. Downloading Config
|
| 22 |
echo 'if [ -n "$CONFIG_URL" ]; then' >> /app/start.sh && \
|
| 23 |
-
|
| 24 |
-
echo ' curl -L -o /app/config.toml "$CONFIG_URL"' >> /app/start.sh && \
|
| 25 |
echo ' if [ $? -eq 0 ]; then' >> /app/start.sh && \
|
| 26 |
-
echo ' echo "✅ Config downloaded
|
| 27 |
-
# 打印文件前几行检查内容 (不打印全部以防泄露)
|
| 28 |
-
echo ' echo "Checking file header:"' >> /app/start.sh && \
|
| 29 |
-
echo ' head -n 5 /app/config.toml' >> /app/start.sh && \
|
| 30 |
echo ' else' >> /app/start.sh && \
|
| 31 |
-
echo ' echo "❌
|
| 32 |
echo ' fi' >> /app/start.sh && \
|
| 33 |
echo 'else' >> /app/start.sh && \
|
| 34 |
-
echo ' echo "⚠️ CONFIG_URL
|
| 35 |
echo 'fi' >> /app/start.sh && \
|
| 36 |
echo '' >> /app/start.sh && \
|
| 37 |
-
# --- 步骤B: 启动
|
| 38 |
-
echo 'echo "2. Starting
|
|
|
|
|
|
|
| 39 |
echo 'nohup python3 -m http.server 7860 > /dev/null 2>&1 &' >> /app/start.sh && \
|
|
|
|
| 40 |
echo 'sleep 2' >> /app/start.sh && \
|
| 41 |
echo '' >> /app/start.sh && \
|
| 42 |
# --- 步骤C: 启动 Bot ---
|
| 43 |
-
echo 'echo "3. Starting Bot
|
| 44 |
echo './saveany-bot' >> /app/start.sh && \
|
| 45 |
chmod +x /app/start.sh
|
| 46 |
|
|
|
|
| 5 |
|
| 6 |
USER root
|
| 7 |
|
| 8 |
+
# 2. 安装 Python3 和 curl
|
| 9 |
RUN (apk add --no-cache python3 curl || (apt-get update && apt-get install -y python3 curl))
|
| 10 |
|
| 11 |
WORKDIR /app
|
|
|
|
| 13 |
# 3. 权限设置
|
| 14 |
RUN mkdir -p /app/downloads && chmod 777 /app/downloads
|
| 15 |
|
| 16 |
+
# 4. 创建隔离的 Web 目录 (关键修复)
|
| 17 |
+
RUN mkdir -p /app/public && \
|
| 18 |
+
echo "SaveAny Bot is Protected & Running" > /app/public/index.html
|
| 19 |
+
|
| 20 |
+
# 5. 编写启动脚本
|
| 21 |
RUN echo '#!/bin/sh' > /app/start.sh && \
|
| 22 |
+
echo 'echo "--- 🔒 Starting Secure Wrapper ---"' >> /app/start.sh && \
|
| 23 |
echo '' >> /app/start.sh && \
|
| 24 |
+
# --- 步骤A: 下载配置文件 (存放在 /app/config.toml) ---
|
| 25 |
+
echo 'echo "1. Downloading Config..."' >> /app/start.sh && \
|
| 26 |
echo 'if [ -n "$CONFIG_URL" ]; then' >> /app/start.sh && \
|
| 27 |
+
echo ' curl -L -s -o /app/config.toml "$CONFIG_URL"' >> /app/start.sh && \
|
|
|
|
| 28 |
echo ' if [ $? -eq 0 ]; then' >> /app/start.sh && \
|
| 29 |
+
echo ' echo "✅ Config downloaded."' >> /app/start.sh && \
|
|
|
|
|
|
|
|
|
|
| 30 |
echo ' else' >> /app/start.sh && \
|
| 31 |
+
echo ' echo "❌ Download failed!"' >> /app/start.sh && \
|
| 32 |
echo ' fi' >> /app/start.sh && \
|
| 33 |
echo 'else' >> /app/start.sh && \
|
| 34 |
+
echo ' echo "⚠️ CONFIG_URL not set."' >> /app/start.sh && \
|
| 35 |
echo 'fi' >> /app/start.sh && \
|
| 36 |
echo '' >> /app/start.sh && \
|
| 37 |
+
# --- 步骤B: 启动 Web Server (限制在 /app/public 目录) ---
|
| 38 |
+
echo 'echo "2. Starting Isolated Web Server..."' >> /app/start.sh && \
|
| 39 |
+
# 进入 public 目录启动 web server,这样它就看不见上一级的 config.toml 了
|
| 40 |
+
echo 'cd /app/public' >> /app/start.sh && \
|
| 41 |
echo 'nohup python3 -m http.server 7860 > /dev/null 2>&1 &' >> /app/start.sh && \
|
| 42 |
+
echo 'cd /app' >> /app/start.sh && \ # 切回 /app 准备启动 bot
|
| 43 |
echo 'sleep 2' >> /app/start.sh && \
|
| 44 |
echo '' >> /app/start.sh && \
|
| 45 |
# --- 步骤C: 启动 Bot ---
|
| 46 |
+
echo 'echo "3. Starting Bot..."' >> /app/start.sh && \
|
| 47 |
echo './saveany-bot' >> /app/start.sh && \
|
| 48 |
chmod +x /app/start.sh
|
| 49 |
|