Skip to content

Repository files navigation

docker-fullstack-lab

Dockerized full-stack apps across 10+ frameworks (React, Angular, Next.js, Django, FastAPI, Spring Boot, Laravel & more) — a hands-on lab for DevOps engineers to practice containerization patterns.


What's Inside

Each project is a self-contained full-stack application with its own Dockerfile, docker-compose.yml, and .env.example. Every stack follows the same layered architecture and exposes a GET /health endpoint for container health checks.

ProjectFrontendBackendDatabase
react-nodeReact 18 + ViteExpress.jsPostgreSQL
vue-expressVue 3Express.jsMongoDB
angular-springbootAngular 17Spring Boot 3PostgreSQL
nextjs-postgresNext.js 14 (SSR)Route HandlersPostgreSQL
express-mongoExpress.jsMongoDB
nestjs-postgresNestJSPostgreSQL
fastapi-postgresFastAPIPostgreSQL
django-postgresDjango + DRFPostgreSQL
flask-redisFlaskRedis
laravel-mysqlLaravel 11MySQL
php-mysqlCore PHPMySQL
springboot-gradle-postgresSpring Boot (Gradle)PostgreSQL
springboot-maven-mysqlSpring Boot (Maven)MySQL
dotnet-postgresASP.NET Core 8 Web APIPostgreSQL
elk-stackElasticsearch, Logstash, Kibana

Dockerfile Teaching Examples

Two focused, frontend-only React (Vite) apps for learning how to write Dockerfiles. They are self-contained (no backend, database, or API keys), so they build and run anywhere — ideal for a hands-on class.

ProjectDockerfile styleRunsImage sizeOpen at
react-dev-singlestageSingle-stage, development modeVite dev server + HMR~450 MBhttp://localhost:5173
react-nginx-multistageMulti-stage, productionnginx serving static build~74 MBhttp://localhost:8080

Read them side by side to understand why production frontends use multi-stage builds — the multi-stage image is ~6× smaller because Node.js and node_modules are discarded after the build stage. Each folder's README.md walks through its Dockerfile line by line.

Getting Started

Every project follows the same workflow:

cd<project-name>
cp .env.example .env
docker compose up --build

Then hit the health endpoint to confirm everything is running:

curl http://localhost:<port>/health

Each project has its own README.md with the exact port, available API endpoints, and stack-specific notes.

What You'll Practice

  • Writing multi-stage Dockerfiles for different runtimes (Node.js, Python, Java, PHP)
  • Composing multi-service applications with docker-compose.yml
  • Networking containers (frontend → backend → database)
  • Using environment variables for configuration
  • Adding health checks to Docker services
  • Serving frontends via nginx as a reverse proxy

About

Dockerized full-stack apps across 10+ frameworks (React, Angular, Next.js, Django, FastAPI, Spring Boot, Laravel & more) — a hands-on lab for DevOps engineers to practice containerization patterns.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages