Teknik Detaylar

Docker ile RabbitMQ Kurulumu

← Teknik Detaylar
2021-03-11 ~ 2026-06-21 · 2 dk okuma
Docker ile RabbitMQ Kurulumu
Bu yazıyı yapay zekâ ile tartış
Sayfayı kopyala

💡 Özet (TL;DR):

  • Amaç: Docker ve Bitnami RabbitMQ imajını kullanarak VPS/yerel ortamda kuyruk yönetimi (Message Broker) servisini ayağa kaldırmak.
  • Önemli Adım: Varsayılan 1001 yerine 1000 kullanıcısını atamak için Dockerfile kullanılır. Dockerfile'daki FROM ve yorum satırı hataları giderilmiştir.
  • Modern Docker İpucu: docker-compose yerine modern docker compose CLI eklentisi ve güncel Compose (version: '3.8') yapısı kullanılmaktadır.

Sıra (Queue) yönetimi için, RabbitMQ gerektirmeden kullanılabilecek, küçük çaplı kullanımlar için gayet yeterli kütüphaneler olsa da, bir VPS'imiz varsa Docker ile 1 dakikadan kısa sürede ayağa kalkacak bir RabbitMQ'yu projeye dahil edip onun üzerinden yürümek hem geleceğe yönelik hem de şu an için tertemiz performanslı bir çözüm olacaktır. Bu nedenle Full-Stack proje geliştiriyoruz yazı dizisi kapsamında RabbitMQ'yu projeye dahil ettim.

MySQL ve Redis'te olduğu gibi, RabbitMQ için de Bitnami'nin sağladığı kalıbı kullanacağım.


1. docker-compose.yml Dosyasını Oluşturmak

Öncelikle projenizin ana dizininde docker-compose.yml dosyamızı oluşturalım:

version: '3.8'

services:
  rabbitmq:
    build: .
    ports:
      - '4369:4369'
      - '5672:5672'
      - '25672:25672'
      - '15672:15672'
    volumes:
      - ./data:/bitnami
    environment:
      - RABBITMQ_USERNAME=kullanmak_istediginiz_kullanici
      - RABBITMQ_PASSWORD=kullanmak_istediginiz_sifre

2. Dockerfile Dosyasını Oluşturmak

Ben varsayılan 1001 kullanıcısı yerine 1000 ID'li kullanıcıyla çalıştırmak istediğim için özel bir Dockerfile dosyası oluşturdum:

FROM bitnami/rabbitmq:latest
LABEL maintainer "Bitnami containers@bitnami.com"
# Varsayılan konteyner kullanıcısını değiştir
USER 1000

Siz dilerseniz docker-compose.yml dosyasında build: . satırı yerine image: bitnami/rabbitmq:latest satırını koyarak varsayılan şekilde de kullanabilirsiniz.

Bundan sonra tek yapmamız gereken docker compose up -d komutunu vermek. RabbitMQ sunucumuz ayağa kalktı bile! Artık tarayıcınızdan http://SUNUCU_IP_ADRESI:15672 portuna bağlanarak RabbitMQ yönetim paneline (Management Web UI) erişebilirsiniz.


RabbitMQ Docker Portları ve Görevleri

Port NumarasıProtokol / ServisAçıklama
15672HTTP / Management Web PanelRabbitMQ web arayüzüne (panel) tarayıcı üzerinden erişim sağlar.
5672AMQP 0-9-1 / BrokerUygulamalarınızın (istemcilerin) mesaj gönderip alması için ana port.
4369EPMD (Erlang Port Mapper Daemon)Erlang düğümlerinin (nodes) birbirini bulmasını sağlayan isim çözümleme servisi.
25672Erlang / ClusteringKümeleme (clustering) ve düğümler arası iletişim için kullanılır.

Bu Yazıda Yapılan Değişiklikler
  • 11.05.2022: Yazı özeti düzenlendi.
  • 21.06.2026: Dockerfile içerisindeki "ROM" ve yorum satırı hataları giderildi, Compose sürümü güncellenerek YAML girinti hataları düzeltildi, eski docker-compose komutları modern docker compose standartlarına çekildi, TL;DR özet ve port tablosu eklendi.