FROM node:22-bookworm-slim WORKDIR /app # better-sqlite3 may need native compilation when a prebuilt binary is unavailable. RUN apt-get update \ && apt-get install -y --no-install-recommends ca-certificates python3 make g++ rclone \ && rm -rf /var/lib/apt/lists/* RUN corepack enable && corepack prepare pnpm@9.15.0 --activate COPY package.json ./ ENV npm_config_build_from_source=true RUN pnpm install --prod=false \ && pnpm rebuild better-sqlite3 COPY src ./src COPY public ./public COPY drizzle ./drizzle COPY tsconfig.json ./ COPY docker-entrypoint.sh ./docker-entrypoint.sh ENV NODE_ENV=production ENV PORT=7860 ENV DB_FILE=/data/data.sqlite ENV RCLONE_CONFIG=/home/node/.config/rclone/rclone.conf ENV RCLONE_BACKUP_REMOTE=huggingface:proptlib RUN chmod +x ./docker-entrypoint.sh \ && mkdir -p /data /home/node/.config/rclone \ && chown -R node:node /app /data /home/node/.config USER node EXPOSE 7860 ENTRYPOINT ["./docker-entrypoint.sh"] CMD ["pnpm", "start"]