owl-stream/backend/Dockerfile

40 lines
677 B
Docker

FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci
COPY tsconfig.json ./
COPY prisma ./prisma
COPY src ./src
RUN npx prisma generate
RUN npm run build
# --- Runtime stage ---
FROM node:20-alpine AS runner
# Install OpenSSL libraries required by Prisma
RUN apk add --no-cache openssl libssl3
RUN addgroup --gid 1001 appgroup && \
adduser -D -u 1001 -G appgroup appuser
WORKDIR /app
COPY package.json package-lock.json* ./
RUN npm ci --omit=dev
COPY --from=builder /app/dist ./dist
COPY prisma ./prisma
RUN npx prisma generate
RUN chown -R appuser:appgroup /app
USER appuser
EXPOSE 3007
CMD ["node", "dist/index.js"]