mcrentcast/frontend/Dockerfile
Ryan Malloy 8b4f9fbfff Initial implementation of mcrentcast MCP server
- Complete Rentcast API integration with all endpoints
- Intelligent caching system with hit/miss tracking
- Rate limiting with exponential backoff
- User confirmation system with MCP elicitation support
- Docker Compose setup with dev/prod modes
- PostgreSQL database for persistence
- Comprehensive test suite foundation
- Full project structure and documentation
2025-09-09 08:41:23 -06:00

59 lines
1.1 KiB
Docker

# Multi-stage Docker build for mcrentcast frontend
FROM node:20-alpine AS base
WORKDIR /app
# Install dependencies
RUN npm install -g pnpm
# Development stage
FROM base AS development
# Copy package files
COPY package.json pnpm-lock.yaml ./
# Install dependencies
RUN pnpm install
# Copy source code
COPY . .
# Expose port
EXPOSE 80
# Development command with hot reload
CMD ["pnpm", "dev", "--host", "0.0.0.0", "--port", "80"]
# Build stage
FROM base AS build
# Copy package files
COPY package.json pnpm-lock.yaml ./
# Install dependencies
RUN pnpm install --frozen-lockfile
# Copy source code
COPY . .
# Build for production
RUN pnpm build
# Production stage
FROM caddy:2.8-alpine AS production
# Copy Caddyfile
COPY --from=build /app/Caddyfile /etc/caddy/Caddyfile
# Copy built assets
COPY --from=build /app/dist /var/www/html
# Health check
HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost/health || exit 1
# Expose port
EXPOSE 80
# Start Caddy
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]