| FROM node:22-bookworm-slim |
|
|
| WORKDIR /app |
|
|
| |
| 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"] |
|
|