feat(dev): added Dockerfile with multistage build and compose file

This commit is contained in:
Timothy Stewart 2025-02-21 21:44:57 -06:00
parent 91ef5e6424
commit d40c4d9025

View File

@ -1,12 +1,9 @@
# Base Stage # Base Stage
FROM node:21.1.0-alpine AS base FROM node:21.1.0-alpine AS base
WORKDIR /app WORKDIR /app
RUN apk add --no-cache libc6-compat
COPY package.json package-lock.json ./ COPY package.json package-lock.json ./
# Deps Stage
FROM base AS deps FROM base AS deps
RUN npm ci RUN npm ci
@ -15,14 +12,11 @@ FROM deps AS dev
COPY . . COPY . .
RUN npx prisma generate RUN npx prisma generate
RUN npm run build:prod RUN npm run build:prod
CMD ["sh", "-c", "npm run dev"] CMD ["sh", "-c", "npm run dev"]
# Production Stage # Production Stage
FROM node:21.1.0-alpine AS prod FROM node:21.1.0-alpine AS prod
WORKDIR /app WORKDIR /app
COPY --from=dev /app/dist ./dist COPY --from=dev /app/dist ./dist
COPY --from=dev /app/prisma ./prisma COPY --from=dev /app/prisma ./prisma
COPY --from=dev /app/package.json ./ COPY --from=dev /app/package.json ./
@ -30,8 +24,6 @@ COPY --from=dev /app/package-lock.json ./
# Install only production dependencies # Install only production dependencies
RUN npm ci --omit=dev RUN npm ci --omit=dev
USER node USER node
EXPOSE 3000 EXPOSE 3000
CMD ["node", "./dist/index.js"] CMD ["node", "./dist/index.js"]