build: 优化 Docker/Workflow 构建,使用 Next.js 环境变量注入版本和构建时间,并移除对 package.json 的硬编码替换

This commit is contained in:
ryan
2026-06-11 20:18:49 +08:00
parent 7c125ccef2
commit 50533e1837
11 changed files with 37 additions and 46 deletions
+3 -10
View File
@@ -29,11 +29,14 @@ ARG ALPINE_VERSION=3.23
FROM node:${NODE_VERSION}-alpine AS frontend-builder
ARG VERSION=dev
ARG BUILD_DATE=""
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
ENV NODE_ENV=production
ENV NEXT_STANDALONE_EXPORT=true
ENV NEXT_PUBLIC_APP_VERSION=${VERSION}
ENV NEXT_PUBLIC_APP_BUILD_DATE=${BUILD_DATE}
RUN corepack enable && corepack prepare pnpm@10.10.0 --activate
@@ -45,16 +48,6 @@ RUN pnpm install --frozen-lockfile
COPY frontend/ ./
# Stamp version into package.json when VERSION is not "dev"
RUN if [ "$VERSION" != "dev" ]; then \
node -e " \
const fs = require('fs'); \
const pkg = require('./package.json'); \
pkg.version = process.env.VERSION.replace(/^v/, ''); \
fs.writeFileSync('./package.json', JSON.stringify(pkg, null, 2) + '\n'); \
"; \
fi
RUN pnpm build:embed
# ── Stage 2: Cross-compile Go backend ──────────────────────────────────────