Browse Source

修复缺少安装包的问题

feature/web_v4.0
hyh 3 weeks ago
parent
commit
12f43f65a2
  1. 3
      modify.md
  2. 6
      site/Dockerfile

3
modify.md

@ -35,7 +35,8 @@
3. **sharp 支持** 3. **sharp 支持**
- 在 builder 阶段安装 sharp(作为依赖) - 在 builder 阶段安装 sharp(作为依赖)
- standalone 模式自动包含 sharp 到 `.next/standalone/node_modules` - standalone 模式自动包含 sharp 到 `.next/standalone/node_modules`
- runner 阶段只需要 libc6-compat(Alpine 兼容性),sharp 自带预编译二进制 - runner 阶段安装 libc6-compat(可选):用于 Alpine musl 提供 glibc 兼容性,帮助 sharp 在 Alpine 上运行
- **注意**:libc6-compat 与 standalone 模式无关,只是为了在 Alpine 上运行需要 glibc 的包(如 sharp)
### 使用说明 ### 使用说明
1. **构建镜像** 1. **构建镜像**

6
site/Dockerfile

@ -11,7 +11,7 @@ FROM node:20-alpine AS builder
WORKDIR /app WORKDIR /app
# 安装构建依赖(一次性安装,减少层数 # 安装构建依赖(可选:libc6-compat 用于 Alpine musl 提供 glibc 兼容性,帮助 sharp 等需要 glibc 的包运行
RUN apk add --no-cache libc6-compat RUN apk add --no-cache libc6-compat
# 复制 package 文件 # 复制 package 文件
@ -40,11 +40,13 @@ ENV HOSTNAME="0.0.0.0"
RUN addgroup --system --gid 1001 nodejs && \ RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs adduser --system --uid 1001 nextjs
# 安装运行时依赖(仅 libc6-compat,sharp 自带预编译二进制) # 安装运行时依赖(可选:libc6-compat 用于 Alpine musl 提供 glibc 兼容性,帮助 sharp 运行)
# 注意:libc6-compat 与 standalone 模式无关,只是为了在 Alpine 上运行需要 glibc 的包
RUN apk add --no-cache libc6-compat RUN apk add --no-cache libc6-compat
# 复制 standalone 输出(Next.js standalone 模式会自动包含 dependencies 中的所有包,包括 sharp) # 复制 standalone 输出(Next.js standalone 模式会自动包含 dependencies 中的所有包,包括 sharp)
# standalone 目录结构:server.js + node_modules(包含所有运行时依赖) # standalone 目录结构:server.js + node_modules(包含所有运行时依赖)
# 注意:standalone 模式与 libc6-compat 无关,libc6-compat 只是为了在 Alpine 上运行 sharp
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

Loading…
Cancel
Save