diff --git a/api/.dockerignore b/api/.dockerignore new file mode 100644 index 0000000..4c70ece --- /dev/null +++ b/api/.dockerignore @@ -0,0 +1,7 @@ +node_modules +dist +coverage +.env +.env.* +!.env.example +*.log diff --git a/api/Dockerfile b/api/Dockerfile new file mode 100644 index 0000000..50383bd --- /dev/null +++ b/api/Dockerfile @@ -0,0 +1,24 @@ +# Stage 1: Build +FROM node:18-alpine AS builder + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY . . +RUN npm run build + +# Stage 2: Production +FROM node:18-alpine AS production + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci --omit=dev + +COPY --from=builder /app/dist ./dist + +EXPOSE 3000 + +CMD ["node", "dist/main"]