# ocs-nuxt 应用镜像
# 构建流程：pnpm install（含 postinstall: prisma generate + nuxt prepare）→ nuxt build → node 启动
FROM ocs-base:latest

WORKDIR /app

# 复制所有源码（node_modules/.nuxt/.output 已在 .dockerignore 中排除）
COPY . .

# prisma.config.ts 中 env("DATABASE_URL") 在加载时即校验，构建阶段不连接数据库
# 此处仅为 prisma generate 提供占位值，运行时由容器环境变量覆盖
ARG DATABASE_URL=mysql://build:build@localhost:3306/build
ENV DATABASE_URL=$DATABASE_URL

# 安装依赖并触发 postinstall（prisma generate + nuxt prepare）
# --frozen-lockfile 确保版本与 pnpm-lock.yaml 严格一致
RUN pnpm install --frozen-lockfile

# 构建 Nuxt 应用，输出到 .output/
RUN pnpm build

# Nuxt server 默认监听 3000，可通过 PORT 环境变量覆盖
ENV PORT=3000
# 容器时区设为 CST，确保 date.getHours() 等本地时间方法返回正确的北京时间
ENV TZ=Asia/Shanghai
EXPOSE 3000

CMD ["node", ".output/server/index.mjs"]
