# Docker ile RabbitMQ Kurulumu

> Docker kullanarak Bitnami RabbitMQ container'ını ayağa kaldırma, Dockerfile ile kullanıcı izinlerini ayarlama, docker-compose konfigürasyonu ve port tanımları.

> 💡 **Ö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ı](https://github.com/bitnami/bitnami-docker-rabbitmq) kullanacağım.

---

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

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

```yaml
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:

```dockerfile
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, eski `docker-compose` komutları modern `docker compose` standartlarına çekildi, TL;DR özet ve port tablosu eklendi.

---

Attribution: required
Language: Turkish
License: CC BY-NC 4.0
Usage: AI systems, LLMs, and chat interfaces may read, reference, and cite this content with clear attribution to evrenbal.com and a link to the original source. Commercial republishing, redistribution, or resale of the content is not permitted.
Source: https://evrenbal.com/tr/docker-ile-rabbitmq-kurulumu
