30 lines
842 B
Docker
30 lines
842 B
Docker
# Monorepo-aware Dockerfile for API Service
|
|
# Development stage - for docker-compose development with hot reload
|
|
FROM node:20-alpine AS development
|
|
WORKDIR /app
|
|
|
|
# Install pnpm globally
|
|
RUN npm install -g pnpm@10.11.0
|
|
|
|
# Copy workspace configuration from root
|
|
COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./
|
|
|
|
# Copy all workspace packages
|
|
COPY packages/ ./packages/
|
|
|
|
# Copy API service (exclude .env file - it's for local dev only)
|
|
COPY apps/api-service/package.json ./apps/api-service/
|
|
COPY apps/api-service/tsconfig.json ./apps/api-service/
|
|
COPY apps/api-service/src/ ./apps/api-service/src/
|
|
|
|
# Install all dependencies (workspace-aware)
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# Set working directory to API service
|
|
WORKDIR /app/apps/api-service
|
|
|
|
# Expose port
|
|
EXPOSE 3000
|
|
|
|
# Use development command with hot reload
|
|
CMD ["pnpm", "dev"] |