Multi-Tier Deployment
Deploy database, backend, and frontend as separate Docker containers.
2Mark as Done
The goal of this project is to practice deploying a multi-tier application using Docker. You will work with the common three-tier architecture (database, backend, and frontend) where each component runs as a separate container and communicates over the network.
Requirements
Pick any simple full-stack application with a database, backend API, and frontend. You can grab one from GitHub or build a minimal one yourself; the tech stack does not matter since the focus is on deployment, not development.
You are required to:
Containerize each tier and run them as separate Docker containers
Set up networking so services can communicate (backend connects to database, frontend reaches backend)
Manage configuration properly, connection strings, ports, credentials should not be hardcoded
Ensure database data persists across container restarts
Use Docker Compose to orchestrate the deployment.
As a stretch goal, once you have everything working, consider trying with individual docker run commands and manual network setup - this removes the docker compose abstraction and forces you to understand what Compose does under the hood.
After completing this project, you should have a solid understanding of multi-tier architecture, container networking, configuration management, and data persistence with Docker.
