lucklca commited on
Commit
0f4570d
·
verified ·
1 Parent(s): 73023ec

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +14 -9
Dockerfile CHANGED
@@ -1,21 +1,26 @@
1
  # 1. 使用官方镜像
2
  FROM ghcr.io/cjackhwang/ds2api:latest
3
 
4
- # 2. 临时切换到 root
5
  USER root
 
6
 
7
- # ---------------------------------------------------------
8
- # 【最后一击】删掉 7860,直接向 HF 宣告程序在 5001 监听!
9
- # ---------------------------------------------------------
10
- EXPOSE 5001
11
 
12
- # 3. 生成合法空配置并赋权
13
  RUN mkdir -p /app && \
14
  echo "{}" > /app/config.json && \
15
  chown -R 1000:1000 /app
16
 
17
- # 4. 切换非 root 用户
18
  USER 1000
19
 
20
- # 5. 启动程序
21
- CMD sh -c 'if [ -n "$DS2API_CONFIG_JSON" ]; then echo "$DS2API_CONFIG_JSON" > /app/config.json; fi && /usr/local/bin/ds2api'
 
 
 
 
 
 
 
1
  # 1. 使用官方镜像
2
  FROM ghcr.io/cjackhwang/ds2api:latest
3
 
4
+ # 2. 切换到 root 安装 socat 工具
5
  USER root
6
+ RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
7
 
8
+ # 3. 强行暴露 7860,让 HF 满意
9
+ EXPOSE 7860
 
 
10
 
11
+ # 4. 初始化配置并赋权
12
  RUN mkdir -p /app && \
13
  echo "{}" > /app/config.json && \
14
  chown -R 1000:1000 /app
15
 
16
+ # 5. 切换非 root 用户
17
  USER 1000
18
 
19
+ # ---------------------------------------------------------
20
+ # 【核心黑科技】
21
+ # 使用 socat 在后台把 7860 的流量转给 5001
22
+ # 这样 HF 访问 7860 时,就能连上 5001 的程序了
23
+ # ---------------------------------------------------------
24
+ CMD sh -c 'socat TCP-LISTEN:7860,fork,reuseaddr TCP:127.0.0.1:5001 & \
25
+ if [ -n "$DS2API_CONFIG_JSON" ]; then echo "$DS2API_CONFIG_JSON" > /app/config.json; fi && \
26
+ /usr/local/bin/ds2api'