From 625d66ee0091495c72fe2665ed93a1b45d12e358 Mon Sep 17 00:00:00 2001 From: Dmytro Stanchiev Date: Fri, 15 Aug 2025 22:52:11 -0400 Subject: [PATCH] containerize app for production --- Dockerfile | 35 +++++++++++++++++++++++++++++++++++ docker-compose.yml | 13 +++++++++++++ 2 files changed, 48 insertions(+) diff --git a/Dockerfile b/Dockerfile index e69de29..6528e42 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1,35 @@ +# ===================== +# Build Stage +# ===================== +FROM oven/bun:1.2.10-alpine AS builder + +WORKDIR /app + +# Install dependencies +COPY package.json bun.lock ./ +RUN bun install --frozen-lockfile + +# Copy rest of app +COPY . . + +# Build Next.js app +RUN bun run build + +# ===================== +# Runtime Stage +# ===================== +FROM oven/bun:1.2.10-alpine + +WORKDIR /app + +# Copy only necessary files from builder +COPY --from=builder /app/package.json /app/package.json +COPY --from=builder /app/.next /app/.next +COPY --from=builder /app/public /app/public +COPY --from=builder /app/node_modules /app/node_modules + +# Expose port +EXPOSE 3000 + +# Run in production +CMD ["bun", "run", "start"] diff --git a/docker-compose.yml b/docker-compose.yml index e69de29..3e356a1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +services: + ical-pwa: + build: . + container_name: ical-pwa + restart: unless-stopped + ports: + - "3000:3000" + environment: + NODE_ENV: production + OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} + volumes: + - .:/app + - /app/node_modules