Spaces:
Build error
Build error
| FROM denoland/deno:latest | |
| WORKDIR /app | |
| # 安装构建 dynamic-proxy 需要的依赖 | |
| RUN apt-get update && \ | |
| apt-get install -y git golang net-tools build-essential && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # 克隆 dynamic-proxy 并构建 | |
| RUN git clone https://github.com/kbykb/dynamic-proxy.git /app/dynamic-proxy && \ | |
| cd /app/dynamic-proxy && \ | |
| go build -o /usr/local/bin/dynamic-proxy . && \ | |
| rm -rf /app/dynamic-proxy | |
| # 拷贝服务端文件 | |
| COPY main.ts . | |
| COPY config.yaml . | |
| # 默认环境变量(可在 HF Space WebUI 覆盖) | |
| ENV WORKER_API_KEY="1" | |
| ENV PROXY_URL="http://127.0.0.1:17285" | |
| ENV SERVICE_PORT="8000" | |
| EXPOSE 17285 | |
| EXPOSE 8000 | |
| # 启动脚本:先起 dynamic-proxy → 等待端口 → 再启动 Deno 服务 | |
| CMD sh -c "\ | |
| echo 'Starting dynamic-proxy...'; \ | |
| /usr/local/bin/dynamic-proxy -config=/app/config.yaml > /app/proxy.log 2>&1 & \ | |
| echo 'Waiting for proxy to listen on port 17285...'; \ | |
| for i in $(seq 1 20); do \ | |
| if netstat -tuln | grep ':17285' > /dev/null; then \ | |
| echo 'dynamic-proxy is UP.'; \ | |
| break; \ | |
| fi; \ | |
| sleep 1; \ | |
| echo '...'; \ | |
| done; \ | |
| if ! netstat -tuln | grep ':17285' > /dev/null; then \ | |
| echo 'ERROR: dynamic-proxy FAILED to start'; \ | |
| echo '---- proxy log ----'; \ | |
| cat /app/proxy.log; \ | |
| exit 1; \ | |
| fi; \ | |
| echo 'Starting main.ts'; \ | |
| deno run --allow-net --allow-env --allow-read /app/main.ts \ | |
| " | |