File size: 1,279 Bytes
a13ede0
 
 
 
fed9e59
 
 
 
 
a13ede0
 
 
 
7ce90de
 
 
 
 
 
 
 
 
 
a13ede0
 
 
 
 
 
 
 
 
 
8ad7a53
 
a13ede0
8ad7a53
 
 
a13ede0
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 使用轻量级的 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 []