tsynws commited on
Commit
b5dcf70
·
verified ·
1 Parent(s): 692476f

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +41 -3
Dockerfile CHANGED
@@ -1,3 +1,41 @@
1
- FROM gitcode.com/gh_mirrors/open/openlist:latest
2
- EXPOSE 7860
3
- CMD ["./openlist", "server", "--port", "7860"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM openlistteam/openlist:latest
2
+ WORKDIR /opt/openlist
3
+ USER root
4
+ EXPOSE 5244
5
+
6
+ CMD sh -c "\
7
+ ./openlist server & PID=\$!; \
8
+ sleep 5; \
9
+ echo '⏳ 正在启动服务...'; \
10
+ i=0; while ! wget -q --spider http://127.0.0.1:5244/api/public/settings; do \
11
+ sleep 2; i=\$((i+1)); \
12
+ [ \$i -ge 15 ] && echo '❌ 服务启动超时' && kill \$PID && exit 1; \
13
+ done; \
14
+ \
15
+ [ -z \"\$OPENLIST_ADMIN_PASSWORD\" ] && echo '❌ 未设置密码' && exit 1; \
16
+ \
17
+ echo '🔑 正在登录...'; \
18
+ TOKEN=\$(wget -qO- --post-data=\"{\\\"username\\\":\\\"admin\\\",\\\"password\\\":\\\"\$OPENLIST_ADMIN_PASSWORD\\\"}\" \
19
+ --header='Content-Type: application/json' http://127.0.0.1:5244/api/auth/login 2>/dev/null | grep -o '\"token\":\"[^\"]*\"' | cut -d'\"' -f4); \
20
+ \
21
+ if [ \${#TOKEN} -gt 20 ]; then \
22
+ echo '🚀 登录成功'; \
23
+ for n in 1 2 3 4 5 6 7 8 9 10; do \
24
+ BODY=\$(printenv STORAGE_JSON_\$n); \
25
+ [ -n \"\$BODY\" ] || continue; \
26
+ \
27
+ echo \"\$BODY\" > /tmp/p.json; \
28
+ if grep -q '\"mount_path\"' /tmp/p.json; then \
29
+ printf \"📦 配置 \$n: \"; \
30
+ wget -qO- --post-file=/tmp/p.json \
31
+ --header=\"Content-Type: application/json\" \
32
+ --header=\"Authorization: \$TOKEN\" \
33
+ http://127.0.0.1:5244/api/admin/storage/create 2>/dev/null | grep -o '\"message\":\"[^\"]*\"' || echo '完成'; \
34
+ fi; \
35
+ rm -f /tmp/p.json; \
36
+ done; \
37
+ echo '✅ 所有初始化任务已完成!'; \
38
+ else \
39
+ echo '❌ 认证失败'; kill \$PID; exit 1; \
40
+ fi; \
41
+ wait \$PID"