FROM registry.cn-beijing.aliyuncs.com/d8dcloud/node:20.19.4-bookworm

# 清除所有现有的APT源配置
RUN rm -rf /etc/apt/sources.list.d/* && \
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list && \
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list
# 完全禁用APT的GPG验证
RUN echo 'APT::Get::AllowUnauthenticated "true";' > /etc/apt/apt.conf.d/99allow-unauthenticated && \
    echo 'Acquire::AllowInsecureRepositories "true";' >> /etc/apt/apt.conf.d/99allow-unauthenticated && \
    echo 'Acquire::AllowDowngradeToInsecureRepositories "true";' >> /etc/apt/apt.conf.d/99allow-unauthenticated
# 现在可以无验证更新和安装
RUN apt update --fix-missing && \
    apt install -y curl wget

# 安装 pnpm
RUN npm install -g pnpm

# 配置国内npm镜像
RUN pnpm config set registry https://registry.npmmirror.com/
RUN pnpm config set @jsr:registry https://npm.jsr.io

# 添加PostgreSQL 17的官方仓库（同样禁用验证）
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
    echo "deb http://apt.postgresql.org/pub/repos/apt/ bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list

# 更新包列表并安装PostgreSQL 17客户端工具
RUN apt update && \
    apt install -y postgresql-client-17

# 确认版本
RUN pg_dump --version

# 设置工作目录
WORKDIR /workspace

# 设置备份目录环境变量
ENV BACKUP_DIR=/app/backups-prd/

# 复制根目录配置文件
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./

# 复制各项目 package.json
COPY web/package.json ./web/
COPY packages/ ./packages/
COPY allin-packages/ ./allin-packages/

# 安装依赖
RUN pnpm install --frozen-lockfile

# 复制项目文件
COPY . .

# 构建 web 应用
RUN cd web && pnpm run build

# 暴露端口(根据实际需要调整)
EXPOSE 8080

# 启动命令
CMD ["sh", "-c", "cd web && pnpm run start"]