30 lines
388 B
Docker
30 lines
388 B
Docker
# Build Stage
|
|
FROM node:20-slim AS build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
|
|
# Build Frontend
|
|
RUN npm run build:frontend
|
|
|
|
# Build Backend
|
|
RUN npm run build:backend
|
|
|
|
# Runtime Stage
|
|
FROM node:20-slim
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/package*.json ./
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY --from=build /app/dist ./dist
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["node", "dist/backend/server.js"]
|