Hari ini saya belajar kalau expose di Docker Compose sebenarnya tetap penting, walaupun tidak benar-benar membuka port ke host seperti ports.

Setelah membaca artikel perbandingan expose dan ports, saya baru paham bahwa expose berfungsi untuk memberi tahu container lain dalam jaringan yang sama port mana yang digunakan oleh service — tanpa membuatnya bisa diakses dari luar.

Contohnya:

services:
  backend:
    build: ./backend
    expose:
      - "4000"

  frontend:
    build: ./frontend
    depends_on:
      - backend

Di sini, frontend bisa mengakses backend lewat http://backend:4000,
tapi host (komputer saya) tidak bisa langsung mengaksesnya — dan itu memang tujuannya.

Yang saya pelajari:

  • expose digunakan untuk komunikasi internal, sedangkan ports untuk akses eksternal.
  • Membantu mendokumentasikan port internal antar service.
  • Menjaga keamanan dengan tidak membuka port sensitif ke luar.
  • Membuat arsitektur jaringan container lebih jelas dan mudah dipahami.

Detail kecil, tapi memberi manfaat besar — terutama saat konfigurasi Compose makin kompleks.

Difference Between Expose and Ports in Docker Compose | Baeldung on Ops
Explore the differences between expose and ports when using Docker Compose.

#TIL - Kenapa expose di `Docker Compose` Masih Penting

TIL bahwa expose di Docker Compose bukan hanya hiasan — tapi penting untuk dokumentasi internal, keamanan, dan kejelasan antar service.