build(docker): 前端改从 web/ workspace 根构建(修复 catalog/bun.lock 解析)

前端已是 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) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 01:31:22 +08:00
parent f4987767b3
commit ceb8d26cee

View File

@@ -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