# One image, two processes: the web app (default) and the worker (`npm run worker`). FROM node:22-alpine RUN apk add --no-cache openssl WORKDIR /app ENV NODE_ENV=production COPY package.json package-lock.json* ./ RUN npm ci --omit=dev && npm i --no-save tsx && npm cache clean --force COPY . . RUN npx prisma generate && npm run build EXPOSE 3000 CMD ["sh", "-c", "npx prisma migrate deploy && npm run start"]