wd21 commited on
Commit
c36199a
·
verified ·
1 Parent(s): 55fc754

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -11
Dockerfile CHANGED
@@ -1,11 +1,11 @@
1
  FROM walkingd/tgto123:latest
2
 
3
- # 安装 socat 和 huggingface_hub
4
- RUN apt-get update && apt-get install -y socat && \
5
  pip3 install --no-cache-dir huggingface_hub --break-system-packages && \
6
  rm -rf /var/lib/apt/lists/*
7
 
8
- # 备份脚本(备份 /app/db 和 /app/user.env 等关键配置
9
  RUN cat > /usr/local/bin/backup.sh << 'EOF'
10
  #!/bin/bash
11
  set -e
@@ -70,7 +70,7 @@ EOF
70
 
71
  RUN chmod +x /usr/local/bin/backup.sh
72
 
73
- # 启动脚本(优化顺序
74
  RUN cat > /usr/local/bin/start.sh << 'EOF'
75
  #!/bin/bash
76
  set -e
@@ -103,7 +103,6 @@ try:
103
  )
104
  with tarfile.open(path, "r:gz") as tar:
105
  tar.extractall(path="/tmp/restore_data")
106
- # 恢复找到的所有文件/目录
107
  if os.path.exists("/tmp/restore_data/tgtodrive_backup"):
108
  for item in os.listdir("/tmp/restore_data/tgtodrive_backup"):
109
  src = os.path.join("/tmp/restore_data/tgtodrive_backup", item)
@@ -120,7 +119,7 @@ except Exception as e:
120
  PYEOF
121
  fi
122
 
123
- # 启动主服务(后台运行)
124
  echo "🚀 启动 TgtoDrive 主服务..."
125
  if [ -f "/app/tgto123" ]; then
126
  /app/tgto123 &
@@ -132,16 +131,19 @@ else
132
  fi
133
  MAIN_PID=$!
134
 
135
- # 等待主服务启动,确保端口监听
136
- echo "⏳ 等待主服务启动(5秒)..."
137
- sleep 5
 
 
 
138
 
139
  # 启动端口转发
140
  echo "🔌 启动端口转发 7860 -> 12366"
141
  socat TCP-LISTEN:7860,fork TCP:127.0.0.1:12366 &
142
  SOCAT_PID=$!
143
 
144
- # 定时备份(每30分钟)
145
  echo "⏰ 启动自动备份(每30分钟)..."
146
  (
147
  while true; do
@@ -151,7 +153,6 @@ echo "⏰ 启动自动备份(每30分钟)..."
151
  ) &
152
  BACKUP_PID=$!
153
 
154
- # 容器退出时备份
155
  trap 'echo "🛑 容器停止,执行最后一次备份..."; /usr/local/bin/backup.sh; kill $MAIN_PID $SOCAT_PID $BACKUP_PID 2>/dev/null' EXIT
156
 
157
  wait $MAIN_PID
 
1
  FROM walkingd/tgto123:latest
2
 
3
+ # 安装 socat, netcat 和 huggingface_hub
4
+ RUN apt-get update && apt-get install -y socat netcat-openbsd && \
5
  pip3 install --no-cache-dir huggingface_hub --break-system-packages && \
6
  rm -rf /var/lib/apt/lists/*
7
 
8
+ # 备份脚本(保持不变
9
  RUN cat > /usr/local/bin/backup.sh << 'EOF'
10
  #!/bin/bash
11
  set -e
 
70
 
71
  RUN chmod +x /usr/local/bin/backup.sh
72
 
73
+ # 启动脚本(增加端口检测
74
  RUN cat > /usr/local/bin/start.sh << 'EOF'
75
  #!/bin/bash
76
  set -e
 
103
  )
104
  with tarfile.open(path, "r:gz") as tar:
105
  tar.extractall(path="/tmp/restore_data")
 
106
  if os.path.exists("/tmp/restore_data/tgtodrive_backup"):
107
  for item in os.listdir("/tmp/restore_data/tgtodrive_backup"):
108
  src = os.path.join("/tmp/restore_data/tgtodrive_backup", item)
 
119
  PYEOF
120
  fi
121
 
122
+ # 启动主服务
123
  echo "🚀 启动 TgtoDrive 主服务..."
124
  if [ -f "/app/tgto123" ]; then
125
  /app/tgto123 &
 
131
  fi
132
  MAIN_PID=$!
133
 
134
+ # 等待端口 12366 就绪
135
+ echo "⏳ 等待主服务端口 12366 就绪..."
136
+ while ! nc -z 127.0.0.1 12366 2>/dev/null; do
137
+ sleep 1
138
+ done
139
+ echo "✅ 主服务端口已就绪"
140
 
141
  # 启动端口转发
142
  echo "🔌 启动端口转发 7860 -> 12366"
143
  socat TCP-LISTEN:7860,fork TCP:127.0.0.1:12366 &
144
  SOCAT_PID=$!
145
 
146
+ # 定时备份
147
  echo "⏰ 启动自动备份(每30分钟)..."
148
  (
149
  while true; do
 
153
  ) &
154
  BACKUP_PID=$!
155
 
 
156
  trap 'echo "🛑 容器停止,执行最后一次备份..."; /usr/local/bin/backup.sh; kill $MAIN_PID $SOCAT_PID $BACKUP_PID 2>/dev/null' EXIT
157
 
158
  wait $MAIN_PID