Docker ile RabbitMQ Kurulumu

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
1001yerine1000kullanıcısını atamak için Dockerfile kullanılır. Dockerfile'dakiFROMve yorum satırı hataları giderilmiştir.- Modern Docker İpucu:
docker-composeyerine moderndocker composeCLI 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 / Servis | Açıklama |
|---|---|---|
15672 | HTTP / Management Web Panel | RabbitMQ web arayüzüne (panel) tarayıcı üzerinden erişim sağlar. |
5672 | AMQP 0-9-1 / Broker | Uygulamalarınızın (istemcilerin) mesaj gönderip alması için ana port. |
4369 | EPMD (Erlang Port Mapper Daemon) | Erlang düğümlerinin (nodes) birbirini bulmasını sağlayan isim çözümleme servisi. |
25672 | Erlang / Clustering | Kü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, eskidocker-composekomutları moderndocker composestandartlarına çekildi, TL;DR özet ve port tablosu eklendi.
