🐳 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