fix(dockerfile): 移除构建和运行时多余的环境变量

This commit is contained in:
asgerzhou
2026-07-28 12:00:24 +08:00
parent d9c253b0ee
commit 8e9f7ac6dc
+3 -14
View File
@@ -19,13 +19,9 @@ RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store \
# ---- 构建层:生成 Prisma Client + Next.js 产物 ----
FROM base AS builder
ENV NEXT_TELEMETRY_DISABLED=1 NODE_ENV=production
# 构建时需要的环境变量(数据库连接、认证密钥等
ARG DATABASE_URL NEXT_PUBLIC_BASE_URL BETTER_AUTH_SECRET BETTER_AUTH_TELEMETRY REDIS_URL
ENV DATABASE_URL=${DATABASE_URL} \
NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL} \
BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} \
BETTER_AUTH_TELEMETRY=${BETTER_AUTH_TELEMETRY} \
REDIS_URL=${REDIS_URL}
# 构建时仅需 DATABASE_URLdb:generate 生成 Drizzle Client
ARG DATABASE_URL
ENV DATABASE_URL=${DATABASE_URL}
# 从 deps 层复制已安装的 node_modules,避免重复安装
COPY --from=deps /app/node_modules ./node_modules
@@ -39,13 +35,6 @@ FROM node:24-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 HOSTNAME="0.0.0.0"
# 运行时环境变量
ARG DATABASE_URL NEXT_PUBLIC_BASE_URL BETTER_AUTH_SECRET BETTER_AUTH_TELEMETRY REDIS_URL
ENV DATABASE_URL=${DATABASE_URL} \
NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL} \
BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET} \
BETTER_AUTH_TELEMETRY=${BETTER_AUTH_TELEMETRY} \
REDIS_URL=${REDIS_URL}
# 非 root 用户运行,提升安全性
RUN addgroup --system --gid 1001 nodejs && \