build(docker): reduce runtime image size
This commit is contained in:
@@ -16,11 +16,6 @@ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
RUN --mount=type=cache,id=cozsweet-pnpm-store,target=/pnpm/store,sharing=locked \
|
||||
pnpm install --frozen-lockfile --prefer-offline
|
||||
|
||||
FROM base AS prod-deps
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
RUN --mount=type=cache,id=cozsweet-pnpm-store,target=/pnpm/store,sharing=locked \
|
||||
pnpm install --prod --frozen-lockfile --prefer-offline
|
||||
|
||||
FROM base AS builder
|
||||
ARG NEXT_ENV_FILE=.env.local
|
||||
ENV CI=true
|
||||
@@ -49,7 +44,6 @@ RUN addgroup --system --gid 1001 nodejs \
|
||||
COPY --from=builder /app/public ./public
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||
COPY --from=prod-deps --chown=nextjs:nodejs /app/node_modules ./node_modules
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/src/app/sw.ts ./src/app/sw.ts
|
||||
|
||||
USER nextjs
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ import { withSerwist } from "@serwist/turbopack";
|
||||
*
|
||||
* 容器化部署模型:`output: "standalone"` + Docker Compose。
|
||||
* - `pnpm build` 产出 .next/standalone、.next/static、public。
|
||||
* - Dockerfile 运行 `node server.js`,并保留生产依赖以支持 Serwist 运行时生成 SW。
|
||||
* - Dockerfile 运行 `node server.js`,仅复制 standalone traced runtime 依赖。
|
||||
*/
|
||||
const nextConfig: NextConfig = {
|
||||
output: "standalone",
|
||||
|
||||
Reference in New Issue
Block a user