A modern Next.js portfolio website with containerized deployment support.
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Open http://localhost:3000
- Node.js 18+ and pnpm
- Docker Desktop
# Node.js and pnpm
brew install node pnpm
# Docker Desktop
# Download from: https://www.docker.com/products/docker-desktop
# Install dependencies
pnpm install
# Development server with hot reload
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
# Run linting
pnpm lint
# Build Docker image
make build-prod
# Run locally with Docker Compose
make prod
# Stop Docker containers
make prod-down
# Clean up Docker resources
make clean
The application uses a multi-stage Dockerfile optimized for production:
- Development: Hot reload with pnpm
- Production: Optimized Next.js standalone build
- Security: Non-root user (nextjs:nodejs)
- Size: Minimal Alpine Linux base image
russdias/
βββ src/
β βββ app/ # Next.js app router
β βββ components/ # React components
β βββ lib/ # Utilities and constants
β βββ modules/ # Feature modules
βββ public/ # Static assets
βββ Dockerfile # Multi-stage container build
βββ docker-compose.yml # Local development
βββ Makefile # Development commands
make dev
- Start development servermake build
- Build for productionmake clean
- Clean up Docker resources
make build-prod
- Build production Docker imagemake prod
- Run with Docker Composemake prod-down
- Stop Docker containers
make release
- Build and push to registrymake deploy-prod
- Deploy to production cluster
Run make help
to see all available commands.
See DOCKER.md for production deployment instructions.
- DOCKER.md - Docker development guide
- Modern Stack: Next.js 14 with App Router
- Containerized: Docker with multi-stage builds
- Kubernetes Ready: Helm charts for easy deployment
- Local Development: Minikube integration
- Type Safe: TypeScript throughout
- Optimized: Performance and SEO optimized
- Responsive: Mobile-first design
-
Port already in use:
# Kill process on port 3000 lsof -ti:3000 | xargs kill -9
-
Docker build issues:
# Clean Docker cache make clean
-
Kubernetes pod not starting:
# Check pod logs make local-logs # Get pod details kubectl describe pod -n russdias
-
Minikube issues:
# Reset Minikube minikube delete make minikube-start
MIT License - see LICENSE file for details.