Files
eventify-server-monitor/Dockerfile

41 lines
781 B
Docker
Raw Normal View History

FROM node:20-alpine AS builder
WORKDIR /app
# Copy root package files
COPY package.json package-lock.json ./
COPY server/package.json server/
COPY client/package.json client/
# Install all dependencies
RUN npm ci
# Copy source code
COPY server/ server/
COPY client/ client/
# Build frontend
RUN npm run --workspace=client build
# Production stage
FROM node:20-alpine
WORKDIR /app
# Copy root package files and lockfile
COPY package.json package-lock.json ./
COPY server/package.json server/
# Install all server deps (tsx is in devDependencies but needed to run)
RUN npm ci --workspace=server
# Copy server source
COPY server/ server/
# Copy built frontend
COPY --from=builder /app/client/dist client/dist
EXPOSE 3002
CMD ["npm", "run", "--workspace=server", "start"]