FROM node:22.22.0-bookworm-slim AS build
WORKDIR /app
COPY cloudflare/package.json cloudflare/package-lock.json ./cloudflare/
RUN npm --prefix cloudflare ci
COPY cloudflare/src ./cloudflare/src
COPY cloudflare/test ./cloudflare/test
COPY cloudflare/tsconfig.json ./cloudflare/tsconfig.json
RUN npm --prefix cloudflare run build
FROM node:22.22.0-bookworm-slim
WORKDIR /app
COPY --from=build /app/cloudflare/dist ./cloudflare/dist
COPY --from=build /app/cloudflare/node_modules ./cloudflare/node_modules
COPY cloudflare/package.json ./cloudflare/package.json
COPY cloudflare/migrations ./cloudflare/migrations
COPY cloudflare/client ./cloudflare/client
COPY private/package.json private/README.md ./private/
COPY private/src ./private/src
COPY private/train_lora.py ./private/train_lora.py
RUN mkdir /data && chown node:node /data
USER node
EXPOSE 4590
CMD ["node","private/src/server.mjs"]
