Spaces:
Paused
Paused
| # 使用轻量级的 Alpine Linux 作为基础镜像 | |
| FROM alpine:latest | |
| # 设置环境变量,用于指定目标 WebSocket 代理 URL | |
| # 可以设置两种环境变量: | |
| # - URL: 原始 Space URL,如 https://your-first-space.hf.space | |
| # - TARGET_WSPROXY_URL: 完整的 WebSocket URL (可选的,优先级较低) | |
| ARG URL="" | |
| ENV URL=${URL} | |
| # 工作目录 | |
| WORKDIR /app | |
| # 安装必要的软件,包括网络诊断工具 | |
| RUN apk --no-cache add \ | |
| curl \ | |
| bash \ | |
| python3 \ | |
| netcat-openbsd \ | |
| bind-tools \ | |
| iputils \ | |
| tcpdump \ | |
| busybox-extras | |
| # 下载并安装 gost | |
| ARG GOST_VERSION="2.11.5" | |
| RUN curl -L "https://github.com/ginuerzh/gost/releases/download/v${GOST_VERSION}/gost-linux-amd64-${GOST_VERSION}.gz" | gzip -d > /usr/local/bin/gost && \ | |
| chmod +x /usr/local/bin/gost | |
| # 复制启动脚本 | |
| COPY start.sh /app/ | |
| RUN chmod +x /app/start.sh | |
| # 暴露 7860 (主代理), 7861 (状态页面), 7862 (健康检查) | |
| EXPOSE 7860 7861 7862 | |
| # 设置健康检查,指向专用的健康检查端口 7862 | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \ | |
| CMD nc -z localhost 7862 || exit 1 | |
| # 运行启动脚本 | |
| ENTRYPOINT ["/app/start.sh"] | |
| # 默认参数 (可被 CMD 覆盖) | |
| CMD [] |