fix(dockerfile): 移除构建和运行时多余的环境变量
This commit is contained in:
+3
-14
@@ -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_URL(db: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 && \
|
||||
|
||||
Reference in New Issue
Block a user