test2 / Dockerfile
wunai1's picture
Update Dockerfile
bce3b1f verified
# 构建阶段
FROM golang:1.26-alpine AS builder
RUN apk add --no-cache git
WORKDIR /app
# 克隆官方仓库(获取完整源码)
RUN git clone https://github.com/router-for-me/CLIProxyAPI.git . && \
go mod download
# 编译(使用官方入口 ./cmd/server)
ARG VERSION=dev
ARG COMMIT=none
ARG BUILD_DATE=unknown
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X 'main.Version=${VERSION}' -X 'main.Commit=${COMMIT}' -X 'main.BuildDate=${BUILD_DATE}'" -o ./CLIProxyAPI ./cmd/server/
# 运行阶段
FROM alpine:3.22.0
RUN apk add --no-cache tzdata
# 为 HuggingFace 只读环境创建可写目录
RUN mkdir -p /tmp/cliproxy_data
# 设置环境变量(实际值由 HuggingFace Settings 注入)
ENV MANAGEMENT_STATIC_PATH="/tmp/cliproxy_data/static" \
PGSTORE_LOCAL_PATH="/tmp/cliproxy_data/cache.db" \
TZ=Asia/Shanghai
RUN mkdir /CLIProxyAPI
# 复制编译好的二进制文件
COPY --from=builder /app/CLIProxyAPI /CLIProxyAPI/CLIProxyAPI
# 复制示例配置文件(可选,实际配置通过 WebUI 或数据库)
COPY --from=builder /app/config.example.yaml /CLIProxyAPI/config.example.yaml
WORKDIR /CLIProxyAPI
EXPOSE 8317
# 设置时区
RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo "${TZ}" > /etc/timezone
CMD ["./CLIProxyAPI"]