Download Dockerfile from jjf1999/vproxy: direct link, hf CLI and curl.
- Browser
- Download file 1.86 kB
-
https://huggingface.co/spaces/jjf1999/vproxy/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/jjf1999/vproxy/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/jjf1999/vproxy/resolve/main/Dockerfile
1.86 kB
| # ========================================== | |
| # 第一阶段:利用云原生挂载拉取私有源码并编译 | |
| # ========================================== | |
| FROM golang:1.26-alpine AS builder | |
| # 安装 git 和 openssh 以便拉取私有仓库 | |
| RUN apk add --no-cache git openssh-client | |
| WORKDIR /build | |
| # 🎯【核心破局】:使用 Hugging Face 官方标准的 Secret 挂载读取机制 | |
| # 这行命令会临时把你在 HF 后台填写的 Secret 安全地挂载到容器内的 /run/secrets/GH_TOKEN 文件中 | |
| RUN --mount=type=secret,id=GH_TOKEN \ | |
| GH_TOKEN_VAL=$(cat /run/secrets/GH_TOKEN) && \ | |
| if [ -z "$GH_TOKEN_VAL" ]; then echo "❌ 错误:Hugging Face 的 GH_TOKEN 读取失败,请检查 Settings 里的 Secret 命名是否完全一致!" && exit 1; fi && \ | |
| git clone https://${GH_TOKEN_VAL}@github.com/jjf1126/Agent-Platform-Studio.git . | |
| # 现场执行依赖拉取与物理编译 | |
| RUN go mod download && \ | |
| CGO_ENABLED=0 go build -buildvcs=false -trimpath -ldflags="-s -w" -o vproxy ./cmd/vproxy \ | |
| && go clean -cache -modcache -testcache | |
| # ========================================== | |
| # 第二阶段:构建最终常驻运行的纯净镜像 | |
| # ========================================== | |
| FROM alpine:3.20 | |
| RUN apk add --no-cache ca-certificates tzdata bash | |
| WORKDIR /app | |
| # 1. 复制编译好的主程序 | |
| COPY --from=builder /build/vproxy /app/vproxy | |
| # 2. 将拉取下来的私有配置文件夹物理复制到运行目录 | |
| COPY --from=builder /build/config/ /app/config/ | |
| # 3. 锁定环境变量路径 | |
| ENV VPROXY_CONFIG=/app/config/config.json | |
| ENV VPROXY_API_KEYS=/app/config/api_keys.txt | |
| ENV VPROXY_MODELS=/app/config/models.json | |
| # 4. 强制注入端口适配 Hugging Face 7860 核心网关限制 | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| # 5. 彻底废除 entrypoint 脚本,直接以本地文件运行模式启动二进制 | |
| CMD ["./vproxy"] |