diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f2ccdb4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +dist +.env +.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f22f36d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:22-alpine AS deps +WORKDIR /app +COPY package*.json ./ +RUN npm ci + +FROM node:22-alpine AS build +WORKDIR /app +ENV DATABASE_URL="postgresql://mapflow:mapflow@localhost:5432/mapflow" +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN npm run prisma:generate +RUN npm run build + +FROM node:22-alpine AS runner +WORKDIR /app +ENV NODE_ENV=production +COPY package*.json ./ +RUN npm ci --omit=dev +COPY --from=build /app/dist ./dist +COPY --from=build /app/src/generated ./src/generated +COPY --from=build /app/prisma ./prisma +COPY --from=build /app/prisma.config.ts ./prisma.config.ts +EXPOSE 4000 +CMD ["npm", "run", "start"]