From f9251663a20902790482554cdd495273e1e51617 Mon Sep 17 00:00:00 2001 From: keven1024 Date: Sun, 1 Mar 2026 23:55:27 +0800 Subject: [PATCH] chore: refactor Dockerfiles to improve module management and build process by adding workspace support and restructuring source code copying --- Dockerfile | 19 +++++++++++-------- worker/Dockerfile | 9 ++++++++- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index ee6af59..75d03ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,14 +15,17 @@ RUN corepack enable pnpm && pnpm build FROM golang:1.25.5 AS backend-builder WORKDIR /app -# Download Go modules -COPY backend/go.mod backend/go.sum ./ -RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && go mod download -# Copy the source code. Note the slash at the end, as explained in -# https://docs.docker.com/engine/reference/builder/#copy -COPY backend/ . -# Build -RUN CGO_ENABLED=0 GOOS=linux go build -o backend +# Workspace and module manifests for cache +COPY go.work go.work.sum ./ +COPY backend/ ./backend/ +COPY pkg/ ./pkg/ +RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && \ + (cd backend && go mod download) && \ + (cd pkg/utils && go mod download) && \ + (cd pkg/models && go mod download) && \ + (cd pkg/services && go mod download) +# Build from workspace root so pkg/utils, pkg/models, pkg/services resolve +RUN CGO_ENABLED=0 GOOS=linux go build -o backend ./backend FROM front-base AS runner diff --git a/worker/Dockerfile b/worker/Dockerfile index f8333b7..26fa351 100644 --- a/worker/Dockerfile +++ b/worker/Dockerfile @@ -12,7 +12,14 @@ RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && g # Copy the source code. Note the slash at the end, as explained in # https://docs.docker.com/engine/reference/builder/#copy -COPY . . +COPY go.work go.work.sum ./ +COPY worker/ ./worker/ +COPY pkg/ ./pkg/ +RUN go env -w GO111MODULE=on && go env -w GOPROXY=https://goproxy.cn,direct && \ + (cd worker && go mod download) && \ + (cd pkg/utils && go mod download) && \ + (cd pkg/models && go mod download) && \ + (cd pkg/services && go mod download) # Build RUN CGO_ENABLED=0 GOOS=linux go build -o worker