File size: 987 Bytes
38d943a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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"]