diff --git a/Dockerfile b/Dockerfile index 3e10c4f9f..1419fffdd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,12 @@ WORKDIR /app COPY go.mod go.sum ./ -RUN go mod download +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 . . diff --git a/docker-build-local.sh b/docker-build-local.sh new file mode 100755 index 000000000..ce187a356 --- /dev/null +++ b/docker-build-local.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# Build local image with docker build (no buildx required), +# then start services via docker compose. + +set -euo pipefail + +if ! command -v docker >/dev/null 2>&1; then + echo "Error: docker command not found." + exit 1 +fi + +if ! docker compose version >/dev/null 2>&1; then + echo "Error: docker compose plugin not available." + exit 1 +fi + +IMAGE_TAG="${CLI_PROXY_IMAGE:-cli-proxy-api:local}" + +if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then + VERSION="$(git describe --tags --always --dirty)" + COMMIT="$(git rev-parse --short HEAD)" +else + VERSION="dev" + COMMIT="none" +fi +BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" + +echo "Building local image with:" +echo " Image Tag: ${IMAGE_TAG}" +echo " Version: ${VERSION}" +echo " Commit: ${COMMIT}" +echo " Build Date: ${BUILD_DATE}" +echo "----------------------------------------" + +docker build \ + -t "${IMAGE_TAG}" \ + --build-arg VERSION="${VERSION}" \ + --build-arg COMMIT="${COMMIT}" \ + --build-arg BUILD_DATE="${BUILD_DATE}" \ + --build-arg GOPROXY="${GOPROXY:-https://proxy.golang.org,direct}" \ + --build-arg GOSUMDB="${GOSUMDB:-sum.golang.org}" \ + --build-arg GOPRIVATE="${GOPRIVATE:-}" \ + . + +echo "Starting services from local image..." +CLI_PROXY_IMAGE="${IMAGE_TAG}" CLI_PROXY_PULL_POLICY="never" docker compose up -d --remove-orphans --no-build --pull never + +echo "Done." +echo "Use 'docker compose logs -f' to view logs." diff --git a/docker-compose.yml b/docker-compose.yml index ad2190c23..e2f6728fb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: cli-proxy-api: image: ${CLI_PROXY_IMAGE:-eceasy/cli-proxy-api:latest} - pull_policy: always + pull_policy: ${CLI_PROXY_PULL_POLICY:-always} build: context: . dockerfile: Dockerfile