FROM node:22-bookworm-slim AS build WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY scripts/ ./scripts/ COPY client/ ./client/ RUN node scripts/vendor.mjs FROM node:22-bookworm-slim AS runtime WORKDIR /app RUN node -e "require('node:sqlite')" COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY client/ ./client/ COPY server/ ./server/ COPY shared/ ./shared/ COPY --from=build /app/client/vendor/ ./client/vendor/ RUN mkdir -p /data && chown node:node /data ENV ASSETAPP_DATA_DIR=/data VOLUME ["/data"] ENV PORT=8080 EXPOSE 8080 USER node CMD ["node", "server/supervisor.mjs"]