22333Misaka commited on
Commit
4e1739c
·
verified ·
1 Parent(s): 6bdaa39

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -27
Dockerfile CHANGED
@@ -1,47 +1,49 @@
1
  FROM ghcr.io/krau/saveany-bot:latest
2
 
3
- # 1. 清空入口点,防止原镜像干扰
4
  ENTRYPOINT []
5
 
6
- # 2. 切换 root 用户
7
  USER root
8
 
9
- # 3. 安装 Python3 (仅用于开 Web 服务,不用于启动 Bot)
10
- RUN (apk add --no-cache python3 || (apt-get update && apt-get install -y python3))
11
 
12
  WORKDIR /app
13
 
14
- # 4. 确保权限
15
  RUN mkdir -p /app/downloads && chmod 777 /app/downloads
16
 
17
- # 5. 创建 Shell 启动脚本 (比 Python 启动更稳定,完美继承环境变量)
18
- # 逻辑:
19
- # A. 后台启动 Python Web 服务器监听 7860
20
- # B. 打印一下环境变量是否存在 (方便调试,只打印变量名不打印值)
21
- # C. 前台启动 saveany-bot
22
  RUN echo '#!/bin/sh' > /app/start.sh && \
23
- echo 'echo "--- Starting Wrapper Script ---"' >> /app/start.sh && \
24
- echo '' >> /app/main.py && \
25
- # --- 启动 Web 服务 (后台) ---
26
- echo 'echo "1. Starting Fake Web Server on 7860..."' >> /app/start.sh && \
27
- echo 'nohup python3 -m http.server 7860 > /dev/null 2>&1 &' >> /app/start.sh && \
28
- echo 'sleep 2' >> /app/start.sh && \
29
- echo '' >> /app/main.py && \
30
- # --- 调试:检查环境变量是否真的存在 (只检查 CONFIG_URL CONFIG_TOML) ---
31
- echo 'echo "2. Checking Env Vars..."' >> /app/start.sh && \
32
- echo 'if [ -z "$CONFIG_URL" ]; then' >> /app/start.sh && \
33
- echo ' echo "⚠️ WARNING: CONFIG_URL is empty or not set!"' >> /app/start.sh && \
 
 
 
 
34
  echo 'else' >> /app/start.sh && \
35
- echo ' echo " CONFIG_URL is found (Length: ${#CONFIG_URL})"' >> /app/start.sh && \
36
  echo 'fi' >> /app/start.sh && \
37
- echo '' >> /app/main.py && \
38
- # --- 启动 Bot (前台) ---
39
- echo 'echo "3. Starting Bot..."' >> /app/start.sh && \
 
 
 
 
 
40
  echo './saveany-bot' >> /app/start.sh && \
41
  chmod +x /app/start.sh
42
 
43
- # 6. 暴露端口
44
  EXPOSE 7860
45
 
46
- # 7. 使用 sh 执行脚本
47
  CMD ["/bin/sh", "/app/start.sh"]
 
1
  FROM ghcr.io/krau/saveany-bot:latest
2
 
3
+ # 1. 清空入口点
4
  ENTRYPOINT []
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
12
 
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 "--- 🚀 Starting SaveAny Bot Wrapper ---"' >> /app/start.sh && \
19
+ echo '' >> /app/start.sh && \
20
+ # --- 步骤A: 强制下载配置文件 ---
21
+ echo 'echo "1. Downloading Config from URL..."' >> /app/start.sh && \
22
+ echo 'if [ -n "$CONFIG_URL" ]; then' >> /app/start.sh && \
23
+ # 使用 curl 下载并覆盖 config.toml (-L 这里的 L 是为了跟随重定向)
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 successfully!"' >> /app/start.sh && \
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 "❌ Failed to download config!"' >> /app/start.sh && \
32
+ echo ' fi' >> /app/start.sh && \
33
  echo 'else' >> /app/start.sh && \
34
+ echo ' echo "⚠️ CONFIG_URL is not set!"' >> /app/start.sh && \
35
  echo 'fi' >> /app/start.sh && \
36
+ echo '' >> /app/start.sh && \
37
+ # --- 步骤B: 启动保活 Web Server ---
38
+ echo 'echo "2. Starting Fake Web Server on 7860..."' >> /app/start.sh && \
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 binary..."' >> /app/start.sh && \
44
  echo './saveany-bot' >> /app/start.sh && \
45
  chmod +x /app/start.sh
46
 
 
47
  EXPOSE 7860
48
 
 
49
  CMD ["/bin/sh", "/app/start.sh"]