05ecfb6241
- Introduced a new script `docker-build-local.sh` to build a local Docker image and start services using Docker Compose. - Updated `docker-compose.yml` to allow dynamic pull policy configuration via the `CLI_PROXY_PULL_POLICY` environment variable. - Modified `Dockerfile` to support build arguments for Go module proxy settings during the `go mod download` step.
40 lines
965 B
Docker
40 lines
965 B
Docker
FROM golang:1.26-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY go.mod go.sum ./
|
|
|
|
ARG GOPROXY=https://proxy.golang.org,direct
|
|
ARG GOSUMDB=sum.golang.org
|
|
ARG GOPRIVATE=
|
|
|
|
RUN GOPROXY="${GOPROXY}" GOSUMDB="${GOSUMDB}" GOPRIVATE="${GOPRIVATE}" go mod download || \
|
|
GOPROXY="https://goproxy.cn,direct" GOSUMDB="sum.golang.google.cn" GOPRIVATE="${GOPRIVATE}" 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
|
|
|
|
WORKDIR /CLIProxyAPI
|
|
|
|
EXPOSE 8317
|
|
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo "${TZ}" > /etc/timezone
|
|
|
|
CMD ["./CLIProxyAPI"] |