Files
anatomia/backend/Dockerfile
T

31 lines
1023 B
Docker

FROM node:24-alpine AS build
RUN apk add --no-cache openssl
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY prisma ./prisma
COPY prisma.config.ts ./
COPY src ./src
COPY tsconfig.json ./
# Prisma 7 não lê mais a URL de conexão do schema — só do prisma.config.ts
# (ver src/lib/prisma.ts) — mas carregar esse config, mesmo só pra gerar o
# client, já valida que a env var existe. Nesta etapa de build não há banco
# de verdade (a URL real vem do docker-compose em runtime), então um
# placeholder sintaticamente válido basta.
RUN DATABASE_URL="postgresql://placeholder:placeholder@localhost:5432/placeholder" npx prisma generate
RUN npm run build
FROM node:24-alpine
RUN apk add --no-cache openssl
WORKDIR /app
ENV NODE_ENV=production
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
COPY --from=build /app/dist ./dist
COPY prisma ./prisma
COPY prisma.config.ts ./
COPY docker-entrypoint.sh ./
RUN chmod +x docker-entrypoint.sh
EXPOSE 3333
ENTRYPOINT ["./docker-entrypoint.sh"]