# 使用轻量级的 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 []