# Dockerfile (优化版 v1)
FROM node:20

# 添加安全用户
RUN useradd -m nextuser

# 设置工作目录
WORKDIR /app

# 安装 pnpm
RUN npm install -g pnpm

# 1. 先只拷贝依赖定义文件
# 这两个文件不经常变，所以下面 pnpm install 的缓存命中率会非常高！
COPY package.json pnpm-lock.yaml ./

# 2. 安装生产依赖
# 只有在 package.json 或 pnpm-lock.yaml 变化时，这一步才会重新执行
RUN pnpm install --prod

# 3. 在安装完依赖之后，再拷贝变化频繁的构建产物和配置文件
#COPY .next/ .next/
COPY next.config.mjs ./

# 切换非 root 用户
USER nextuser

# 环境变量
ENV NODE_ENV=production

# 暴露端口
EXPOSE 8089

# 启动服务
CMD ["pnpm", "start"]
