| FROM golang:1.24-alpine AS builder | |
| WORKDIR /app | |
| COPY go.mod go.sum ./ | |
| RUN go mod download | |
| COPY . . | |
| 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 | |
| RUN mkdir /CLIProxyAPI | |
| COPY --from=builder ./app/CLIProxyAPI /CLIProxyAPI/CLIProxyAPI | |
| COPY config.example.yaml /CLIProxyAPI/config.example.yaml | |
| COPY config.yaml /CLIProxyAPI/config.yaml | |
| WORKDIR /CLIProxyAPI | |
| RUN mkdir -p /CLIProxyAPI/auths | |
| EXPOSE 7860 | |
| ENV TZ=Asia/Shanghai | |
| ENV DEPLOY=cloud | |
| ENV PORT=7860 | |
| RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo "${TZ}" > /etc/timezone | |
| CMD ["./CLIProxyAPI"] |