29 lines
1.2 KiB
Docker
29 lines
1.2 KiB
Docker
######################## builder ########################
|
|
FROM node:18-alpine AS builder
|
|
WORKDIR /app
|
|
|
|
# ─── manifests ───────────────────────────────────────────
|
|
COPY api/package*.json ./ # api
|
|
COPY core/prisma/package*.json ./core/prisma/ # prisma schema
|
|
|
|
# ─── deps ────────────────────────────────────────────────
|
|
RUN npm ci --omit=dev --workspaces --include-workspace-root
|
|
|
|
# ─── código fuente ──────────────────────────────────────
|
|
COPY api/. ./ # api code
|
|
COPY core/prisma ./core/prisma # schema & migraciones
|
|
|
|
# si ocupás el cliente:
|
|
RUN npx prisma generate
|
|
|
|
######################## runtime ########################
|
|
FROM node:18-alpine
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /app/node_modules ./node_modules
|
|
COPY --from=builder /app/api ./ # solo la api
|
|
|
|
ENV NODE_ENV=production
|
|
EXPOSE 4000
|
|
CMD ["node", "server.js"]
|