convert / Dockerfile
clash-linux's picture
Upload 4 files
7ce90de verified
# 使用轻量级的 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 []