| # 1. 使用官方镜像 | |
| FROM ghcr.io/cjackhwang/ds2api:latest | |
| # 2. 切换到 root 安装 socat 工具 | |
| USER root | |
| RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* | |
| # 3. 强行暴露 7860,让 HF 满意 | |
| EXPOSE 7860 | |
| # 4. 初始化配置并赋权 | |
| RUN mkdir -p /app && \ | |
| echo "{}" > /app/config.json && \ | |
| chown -R 1000:1000 /app | |
| # 5. 切换回非 root 用户 | |
| USER 1000 | |
| # --------------------------------------------------------- | |
| # 【核心黑科技】 | |
| # 使用 socat 在后台把 7860 的流量转给 5001 | |
| # 这样 HF 访问 7860 时,就能连上 5001 的程序了 | |
| # --------------------------------------------------------- | |
| CMD sh -c 'socat TCP-LISTEN:7860,fork,reuseaddr TCP:127.0.0.1:5001 & \ | |
| if [ -n "$DS2API_CONFIG_JSON" ]; then echo "$DS2API_CONFIG_JSON" > /app/config.json; fi && \ | |
| /usr/local/bin/ds2api' | |