FROM node:22-alpine AS deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci FROM deps AS builder COPY prisma.config.ts ./ COPY prisma ./prisma RUN TEAMS_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres npx prisma generate COPY tsconfig.json ./ COPY src ./src RUN TEAMS_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres npm run build FROM deps AS runtime-deps FROM node:22-alpine AS runtime RUN apk add --no-cache curl jq WORKDIR /app COPY package.json ./ COPY --from=runtime-deps /app/node_modules ./node_modules COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma COPY --from=builder /app/node_modules/@prisma/client ./node_modules/@prisma/client COPY --from=builder /app/dist ./dist COPY prisma.config.ts ./ COPY prisma ./prisma COPY scripts ./scripts EXPOSE 8000 CMD ["sh", "-c", ". /app/scripts/load-vault-env.sh && npx prisma migrate deploy && node dist/index.js"]