FROM knowledge-base-base:latest

# 安装 nginx 和 htpasswd 工具
RUN apk add --no-cache nginx apache2-utils

WORKDIR /app

# 复制包管理文件，利用 Docker 层缓存
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile

# 复制源码
COPY . .

# NEXT_PUBLIC_* 变量在构建时嵌入，通过 build-arg 传入
ARG NEXT_PUBLIC_SUPABASE_URL
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY

RUN pnpm build

# 配置 nginx
COPY nginx.conf /etc/nginx/http.d/default.conf

# 入口脚本：生成 htpasswd -> 启动 Next.js -> 启动 nginx
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 80

ENTRYPOINT ["/entrypoint.sh"]
