Implements Tasks 23 & 24: Backend and Frontend Dockerfiles Backend Dockerfiles: - Dockerfile.dev: Development with dotnet watch hot reload - Base: sdk:10.0, installs dotnet-ef tool - Layer caching: csproj files copied before source - Entry: dotnet watch run with --no-restore - Dockerfile: Production multi-stage build - Build stage: sdk:10.0, restore + build + publish - Runtime stage: aspnet:10.0-alpine (~110MB) - Health check: /health/live endpoint - Non-root: USER app (built-in) Frontend Dockerfiles: - Dockerfile.dev: Development with Bun hot reload - Base: node:22-alpine, installs Bun globally - Layer caching: package.json + bun.lock before source - Command: bun run dev - Dockerfile: Production standalone 3-stage build - Deps stage: Install with --frozen-lockfile - Build stage: bun run build → standalone output - Runner stage: node:22-alpine with non-root nextjs user - Copies: .next/standalone, .next/static, public - Health check: Node.js HTTP GET to port 3000 - Entry: node server.js (~240MB) All Dockerfiles use layer caching optimization and security best practices. Note: Docker build verification skipped (Docker daemon not running).
This is a Next.js project bootstrapped with create-next-app.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
Deploy on Vercel
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.