Update Dockerfile
Browse files- 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 |
-
# 备份脚本(
|
| 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 "⏳ 等待主服务
|
| 137 |
-
|
|
|
|
|
|
|
|
|
|
| 138 |
|
| 139 |
# 启动端口转发
|
| 140 |
echo "🔌 启动端口转发 7860 -> 12366"
|
| 141 |
socat TCP-LISTEN:7860,fork TCP:127.0.0.1:12366 &
|
| 142 |
SOCAT_PID=$!
|
| 143 |
|
| 144 |
-
# 定时备份
|
| 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
|