LogLInk1K commited on
Commit
7f42b3e
·
verified ·
1 Parent(s): 598da2e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +1 -80
Dockerfile CHANGED
@@ -1,83 +1,4 @@
1
  FROM openlistteam/openlist:latest
2
  WORKDIR /opt/openlist
3
  USER root
4
- EXPOSE 5244
5
-
6
- CMD sh -c "\
7
- # 1. 启动服务
8
- ./openlist server & \
9
- PID=\$!; \
10
- \
11
- # 2. 等待并检查服务是否真的启动成功
12
- echo '⏳ 正在等待 OpenList 服务启动...'; \
13
- echo ''; \
14
- sleep 5; \
15
- \
16
- MAX_RETRIES=10; \
17
- while ! wget -q --spider http://127.0.0.1:5244/api/public/settings; do \
18
- sleep 2; \
19
- MAX_RETRIES=\$((MAX_RETRIES - 1)); \
20
- if [ \$MAX_RETRIES -le 0 ]; then \
21
- echo ''; \
22
- echo '❌ 错误: 服务启动超时,请检查日志。'; \
23
- exit 1; \
24
- fi; \
25
- done; \
26
- echo ''; \
27
- echo '✅ 服务已就绪!'; \
28
- echo ''; \
29
- \
30
- # 3. 环境变量及密码有效性强校验
31
- if [ -z \"\$OPENLIST_ADMIN_PASSWORD\" ]; then \
32
- echo '❌ 错误: 未检测到 OPENLIST_ADMIN_PASSWORD。请在 Secrets 中配置!'; \
33
- wait \$PID; exit 1; \
34
- fi; \
35
- \
36
- # 4. 获取 Token
37
- echo '🔑 正在获取 Token...'; \
38
- RAW_TOKEN=\$(wget -qO- --timeout=5 --post-data=\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"\$OPENLIST_ADMIN_PASSWORD\\\"}\" \
39
- --header='Content-Type: application/json' \
40
- http://127.0.0.1:5244/api/auth/login); \
41
- \
42
- TOKEN=\$(echo \$RAW_TOKEN | grep -o '\"token\":\"[^\"]*\"' | cut -d'\"' -f4); \
43
- \
44
- # 5. 执行注入逻辑
45
- if [ -n \"\$TOKEN\" ] && [ \"\${#TOKEN}\" -gt 20 ]; then \
46
- echo '🚀 登录成功,正在解析配置...'; \
47
- echo ''; \
48
- FOUND_VALID=0; \
49
- for i in 1 2 3 4 5 6 7 8 9 10; do \
50
- eval JSON=\\\$STORAGE_JSON_\$i; \
51
- \
52
- if [ -z \"\$JSON\" ]; then \
53
- continue; \
54
- fi; \
55
- \
56
- FOUND_VALID=1; \
57
- if echo \"\$JSON\" | grep -qv '\"mount_path\"'; then \
58
- echo \"⚠️ 错误: STORAGE_JSON_\$i 已检测到但内容格式错误(缺少 mount_path),已跳过。\"; \
59
- echo \"💡 提示: 请检查是否填入了正确的 JSON 字符串。\"; \
60
- continue; \
61
- fi; \
62
- \
63
- echo \"📦 正在添加第 \$i 个存储配置...\"; \
64
- RES=\$(wget -qO- --timeout=5 --post-data=\"\$JSON\" \
65
- --header=\"Content-Type: application/json\" \
66
- --header=\"Authorization: \$TOKEN\" \
67
- http://127.0.0.1:5244/api/admin/storage/create); \
68
- echo \"\$RES\"; \
69
- echo ''; \
70
- done; \
71
- \
72
- if [ \"\$FOUND_VALID\" -eq 0 ]; then \
73
- echo 'ℹ️ 提示: 未发现有效的存储配置。'; \
74
- echo '👉 请检查 Secrets 中的 STORAGE_JSON_x 是否已填入内容,且变量名拼写正确。'; \
75
- fi; \
76
- echo '✅ 所有存储处理完成!'; \
77
- else \
78
- echo '❌ 登录失败!'; \
79
- echo \"💡 响应内容: \${RAW_TOKEN:-'请求超时或无返回'}\"; \
80
- fi; \
81
- \
82
- # 维持主进程
83
- wait \$PID"
 
1
  FROM openlistteam/openlist:latest
2
  WORKDIR /opt/openlist
3
  USER root
4
+ EXPOSE 5244