🐳 Cloud Track - Beginner
Docker Compose App
Containerize a full-stack web application and orchestrate it locally using Docker Compose.
⏱️ 4-6 hours
🎯 Beginner
📋 Overview
Docker Compose is the bridge between running a single container and orchestrating complex multi-container applications. This project teaches you service dependencies, networking, and volumes.
✅ Prerequisites
Required
- • Docker Desktop installed
- • Basic Docker commands (run, build)
- • YAML syntax basics
Tools
- • Docker + Docker Compose
- • Text editor (VS Code)
- • Git (for cloning starter)
🔨 Implementation
Step 1: Create docker-compose.yml
Define a 3-tier app: frontend (React), backend (Node.js), database (PostgreSQL)
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "3000:3000"
depends_on:
- backend
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:14
environment:
POSTGRES_PASSWORD: pass
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:
Step 2: Run the Stack
docker-compose up --build
Step 3: Verify Connectivity
Test that frontend can reach backend, and backend can reach database
# Check logs
docker-compose logs backend
# Test DB connection
docker-compose exec backend npm run db:test
📦 Deliverables
- ✓Working docker-compose.yml for 3-tier app
- ✓All services start without errors
- ✓Database persists data via volumes
- ✓Screenshot showing all 3 containers running