# monitor-ai Dockerfile
FROM node:22-alpine AS base
WORKDIR /app

# 1. 依赖安装
COPY package.json package-lock.json ./
RUN npm ci --production=false

# 2. 复制共享库（构建前由部署脚本创建 symlink: shared -> ../shared）
COPY shared/ ./shared/

# 3. 复制源码并构建
COPY . .
RUN npm run build

# 4. 生产镜像
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=base /app/.next/standalone ./
COPY --from=base /app/.next/static ./.next/static
COPY --from=base /app/scripts ./scripts
COPY --from=base /app/src/lib ./src/lib
COPY --from=base /app/shared ./shared
COPY entrypoint.sh ./

RUN npm install -g tsx
EXPOSE 6181
CMD ["sh", "entrypoint.sh"]
