Study Case: Menjalankan Aplikasi 3-tier dengan Docker Compose

Mari kita buat contoh Docker Compose yang lebih kompleks untuk menggambarkan aplikasi tiga-tier (tiga lapisan) yang umum, yaitu:

  • Web Server: Menangani permintaan HTTP dari pengguna.

  • Database: Menyimpan data aplikasi.

  • Cache: Menyimpan data yang sering diakses untuk meningkatkan kinerja.

docker-compose.yml:

YAML

version: '3.7'

services:
  web:
    build: .
    ports:
      - "80:80"
    depends_on:
      - db
      - redis
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: mysecretpassword
    volumes:
      - db_data:/var/lib/postgresql/data
  redis:
    image: redis
    volumes:
      - redis_data:/data

volumes:
  db_data:
  redis_data:

Use code with caution.

Penjelasan:

  • Tiga layanan: web, db, dan redis mewakili masing-masing lapisan.

  • Dependensi: web bergantung pada db dan redis untuk memastikan layanan database dan cache sudah berjalan sebelum web server dimulai.

  • Volume:

    • db_data dan redis_data adalah volume yang digunakan untuk persistensi data. Data yang disimpan di volume ini tidak akan hilang saat container dihentikan atau dihapus.

    • db_data akan di-mount ke direktori data PostgreSQL di dalam container database.

    • redis_data akan di-mount ke direktori data Redis di dalam container Redis.

Last updated