From ceb8d26cee2bf83ce6d4734cdf905880c6266e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E4=B8=AD=E6=B4=8B?= Date: Tue, 2 Jun 2026 01:31:22 +0800 Subject: [PATCH] =?UTF-8?q?build(docker):=20=E5=89=8D=E7=AB=AF=E6=94=B9?= =?UTF-8?q?=E4=BB=8E=20web/=20workspace=20=E6=A0=B9=E6=9E=84=E5=BB=BA(?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20catalog/bun.lock=20=E8=A7=A3=E6=9E=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前端已是 Bun workspace(根 web/, 含 catalog 与 web/bun.lock)。原 Dockerfile 在 web/default 单独 bun install 无法解析 catalog: 依赖。改为 COPY 整个 web/ → web/ 根 bun install --frozen-lockfile → 分别 build default/classic → 嵌入 go。 保留 GOPROXY build-arg。 Co-Authored-By: Claude Opus 4.8 (1M context) --- Dockerfile | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index a2650bff..d93d7137 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,19 @@ FROM oven/bun:1@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 AS builder WORKDIR /build -COPY web/default/package.json . -RUN bun install -COPY ./web/default . -COPY ./VERSION . -RUN DISABLE_ESLINT_PLUGIN='true' VITE_REACT_APP_VERSION=$(cat VERSION) bun run build +# 前端是 Bun workspace(根在 web/,含 catalog 与 bun.lock),必须从 web/ 根安装才能解析 catalog +COPY web ./web +COPY VERSION ./VERSION +WORKDIR /build/web +RUN bun install --frozen-lockfile -FROM oven/bun:1@sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 AS builder-classic +# 构建 default 前端 → web/default/dist +WORKDIR /build/web/default +RUN DISABLE_ESLINT_PLUGIN='true' VITE_REACT_APP_VERSION=$(cat /build/VERSION) bun run build -WORKDIR /build -COPY web/classic/package.json . -RUN bun install -COPY ./web/classic . -COPY ./VERSION . -RUN VITE_REACT_APP_VERSION=$(cat VERSION) bun run build +# 构建 classic 前端 → web/classic/dist +WORKDIR /build/web/classic +RUN VITE_REACT_APP_VERSION=$(cat /build/VERSION) bun run build FROM golang:1.26.1-alpine@sha256:2389ebfa5b7f43eeafbd6be0c3700cc46690ef842ad962f6c5bd6be49ed82039 AS builder2 ENV GO111MODULE=on CGO_ENABLED=0 @@ -32,8 +31,8 @@ ADD go.mod go.sum ./ RUN go mod download COPY . . -COPY --from=builder /build/dist ./web/default/dist -COPY --from=builder-classic /build/dist ./web/classic/dist +COPY --from=builder /build/web/default/dist ./web/default/dist +COPY --from=builder /build/web/classic/dist ./web/classic/dist RUN go build -ldflags "-s -w -X 'github.com/QuantumNous/new-api/common.Version=$(cat VERSION)'" -o new-api FROM debian:bookworm-slim@sha256:f06537653ac770703bc45b4b113475bd402f451e85223f0f2837acbf89ab020a