# 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'