53 lines
1.0 KiB
Docker
53 lines
1.0 KiB
Docker
# 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"]
|