# Multi-stage Dockerfile for Hitstar Deno Server # Supports both development and production environments # Base stage with common dependencies FROM denoland/deno:latest AS base WORKDIR /app # Copy all source files first for dependency resolution COPY src/server-deno/ . # Cache all dependencies based on deno.json imports RUN deno cache main.ts # Development stage FROM base AS development ENV DENO_ENV=development \ PORT=5173 EXPOSE 5173 # Copy all source files COPY src/server-deno/ . # Run with watch mode and all necessary permissions CMD ["deno", "run", \ "--allow-net", \ "--allow-read", \ "--allow-env", \ "--allow-write", \ "--watch", \ "main.ts"] # Production stage FROM base AS production ENV DENO_ENV=production \ PORT=5173 EXPOSE 5173 # Copy only necessary source files for production COPY src/server-deno/ . # Run optimized production server CMD ["deno", "run", \ "--allow-net", \ "--allow-read=/app/data,/app/public", \ "--allow-env", \ "--allow-write=/app/data", \ "main.ts"]