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