[{"data":1,"prerenderedAt":607},["ShallowReactive",2],{"post-\u002Ftr\u002Fdocker-ile-rabbitmq-kurulumu":3},{"page":4,"translation":442,"nav":460,"related":587,"random":598},{"id":5,"title":6,"body":7,"categories":440,"category":442,"date":443,"description":444,"draft":445,"extension":446,"image":447,"kind":442,"lang":328,"meta":448,"navigation":131,"path":449,"readingTime":128,"seo":450,"slug":451,"stem":452,"tags":453,"translationKey":442,"type":441,"updated":458,"__hash__":459},"postsTr\u002Ftr\u002Fdocker-ile-rabbitmq-kurulumu.md","Docker ile RabbitMQ Kurulumu",{"type":8,"value":9,"toc":434},"minimark",[10,68,71,85,88,93,100,243,245,249,262,289,303,314,316,321,405,407,412,430],[11,12,13,21],"blockquote",{},[14,15,16,17],"p",{},"💡 ",[18,19,20],"strong",{},"Özet (TL;DR):",[22,23,24,31,50],"ul",{},[25,26,27,30],"li",{},[18,28,29],{},"Amaç:"," Docker ve Bitnami RabbitMQ imajını kullanarak VPS\u002Fyerel ortamda kuyruk yönetimi (Message Broker) servisini ayağa kaldırmak.",[25,32,33,36,37,41,42,45,46,49],{},[18,34,35],{},"Önemli Adım:"," Varsayılan ",[38,39,40],"code",{},"1001"," yerine ",[38,43,44],{},"1000"," kullanıcısını atamak için Dockerfile kullanılır. Dockerfile'daki ",[38,47,48],{},"FROM"," ve yorum satırı hataları giderilmiştir.",[25,51,52,55,56,59,60,63,64,67],{},[18,53,54],{},"Modern Docker İpucu:"," ",[38,57,58],{},"docker-compose"," yerine modern ",[38,61,62],{},"docker compose"," CLI eklentisi ve güncel Compose (",[38,65,66],{},"version: '3.8'",") yapısı kullanılmaktadır.",[14,69,70],{},"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.",[14,72,73,74,84],{},"MySQL ve Redis'te olduğu gibi, RabbitMQ için de ",[75,76,83],"a",{"href":77,"rel":78,"target":82},"https:\u002F\u002Fgithub.com\u002Fbitnami\u002Fbitnami-docker-rabbitmq",[79,80,81],"nofollow","noopener","noreferrer","_blank","Bitnami'nin sağladığı kalıbı"," kullanacağım.",[86,87],"hr",{},[89,90,92],"h2",{"id":91},"_1-docker-composeyml-dosyasını-oluşturmak","1. docker-compose.yml Dosyasını Oluşturmak",[14,94,95,96,99],{},"Öncelikle projenizin ana dizininde ",[38,97,98],{},"docker-compose.yml"," dosyamızı oluşturalım:",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-yaml shiki shiki-themes github-light github-dark","version: '3.8'\n\nservices:\n  rabbitmq:\n    build: .\n    ports:\n      - '4369:4369'\n      - '5672:5672'\n      - '25672:25672'\n      - '15672:15672'\n    volumes:\n      - .\u002Fdata:\u002Fbitnami\n    environment:\n      - RABBITMQ_USERNAME=kullanmak_istediginiz_kullanici\n      - RABBITMQ_PASSWORD=kullanmak_istediginiz_sifre\n","yaml","",[38,108,109,126,133,142,150,162,170,179,187,195,203,211,219,227,235],{"__ignoreMap":106},[110,111,114,118,122],"span",{"class":112,"line":113},"line",1,[110,115,117],{"class":116},"s9eBZ","version",[110,119,121],{"class":120},"sVt8B",": ",[110,123,125],{"class":124},"sZZnC","'3.8'\n",[110,127,129],{"class":112,"line":128},2,[110,130,132],{"emptyLinePlaceholder":131},true,"\n",[110,134,136,139],{"class":112,"line":135},3,[110,137,138],{"class":116},"services",[110,140,141],{"class":120},":\n",[110,143,145,148],{"class":112,"line":144},4,[110,146,147],{"class":116},"  rabbitmq",[110,149,141],{"class":120},[110,151,153,156,158],{"class":112,"line":152},5,[110,154,155],{"class":116},"    build",[110,157,121],{"class":120},[110,159,161],{"class":160},"sj4cs",".\n",[110,163,165,168],{"class":112,"line":164},6,[110,166,167],{"class":116},"    ports",[110,169,141],{"class":120},[110,171,173,176],{"class":112,"line":172},7,[110,174,175],{"class":120},"      - ",[110,177,178],{"class":124},"'4369:4369'\n",[110,180,182,184],{"class":112,"line":181},8,[110,183,175],{"class":120},[110,185,186],{"class":124},"'5672:5672'\n",[110,188,190,192],{"class":112,"line":189},9,[110,191,175],{"class":120},[110,193,194],{"class":124},"'25672:25672'\n",[110,196,198,200],{"class":112,"line":197},10,[110,199,175],{"class":120},[110,201,202],{"class":124},"'15672:15672'\n",[110,204,206,209],{"class":112,"line":205},11,[110,207,208],{"class":116},"    volumes",[110,210,141],{"class":120},[110,212,214,216],{"class":112,"line":213},12,[110,215,175],{"class":120},[110,217,218],{"class":124},".\u002Fdata:\u002Fbitnami\n",[110,220,222,225],{"class":112,"line":221},13,[110,223,224],{"class":116},"    environment",[110,226,141],{"class":120},[110,228,230,232],{"class":112,"line":229},14,[110,231,175],{"class":120},[110,233,234],{"class":124},"RABBITMQ_USERNAME=kullanmak_istediginiz_kullanici\n",[110,236,238,240],{"class":112,"line":237},15,[110,239,175],{"class":120},[110,241,242],{"class":124},"RABBITMQ_PASSWORD=kullanmak_istediginiz_sifre\n",[86,244],{},[89,246,248],{"id":247},"_2-dockerfile-dosyasını-oluşturmak","2. Dockerfile Dosyasını Oluşturmak",[14,250,251,252,254,255,257,258,261],{},"Ben varsayılan ",[38,253,40],{}," kullanıcısı yerine ",[38,256,44],{}," ID'li kullanıcıyla çalıştırmak istediğim için özel bir ",[38,259,260],{},"Dockerfile"," dosyası oluşturdum:",[101,263,267],{"className":264,"code":265,"language":266,"meta":106,"style":106},"language-dockerfile shiki shiki-themes github-light github-dark","FROM bitnami\u002Frabbitmq:latest\nLABEL maintainer \"Bitnami containers@bitnami.com\"\n# Varsayılan konteyner kullanıcısını değiştir\nUSER 1000\n","dockerfile",[38,268,269,274,279,284],{"__ignoreMap":106},[110,270,271],{"class":112,"line":113},[110,272,273],{},"FROM bitnami\u002Frabbitmq:latest\n",[110,275,276],{"class":112,"line":128},[110,277,278],{},"LABEL maintainer \"Bitnami containers@bitnami.com\"\n",[110,280,281],{"class":112,"line":135},[110,282,283],{},"# Varsayılan konteyner kullanıcısını değiştir\n",[110,285,286],{"class":112,"line":144},[110,287,288],{},"USER 1000\n",[14,290,291,292,294,295,298,299,302],{},"Siz dilerseniz ",[38,293,98],{}," dosyasında ",[38,296,297],{},"build: ."," satırı yerine ",[38,300,301],{},"image: bitnami\u002Frabbitmq:latest"," satırını koyarak varsayılan şekilde de kullanabilirsiniz.",[14,304,305,306,309,310,313],{},"Bundan sonra tek yapmamız gereken ",[38,307,308],{},"docker compose up -d"," komutunu vermek. RabbitMQ sunucumuz ayağa kalktı bile! Artık tarayıcınızdan ",[38,311,312],{},"http:\u002F\u002FSUNUCU_IP_ADRESI:15672"," portuna bağlanarak RabbitMQ yönetim paneline (Management Web UI) erişebilirsiniz.",[86,315],{},[317,318,320],"h3",{"id":319},"rabbitmq-docker-portları-ve-görevleri","RabbitMQ Docker Portları ve Görevleri",[322,323,324,341],"table",{},[325,326,327],"thead",{},[328,329,330,335,338],"tr",{},[331,332,334],"th",{"align":333},"left","Port Numarası",[331,336,337],{"align":333},"Protokol \u002F Servis",[331,339,340],{"align":333},"Açıklama",[342,343,344,360,375,390],"tbody",{},[328,345,346,354,357],{},[347,348,349],"td",{"align":333},[18,350,351],{},[38,352,353],{},"15672",[347,355,356],{"align":333},"HTTP \u002F Management Web Panel",[347,358,359],{"align":333},"RabbitMQ web arayüzüne (panel) tarayıcı üzerinden erişim sağlar.",[328,361,362,369,372],{},[347,363,364],{"align":333},[18,365,366],{},[38,367,368],{},"5672",[347,370,371],{"align":333},"AMQP 0-9-1 \u002F Broker",[347,373,374],{"align":333},"Uygulamalarınızın (istemcilerin) mesaj gönderip alması için ana port.",[328,376,377,384,387],{},[347,378,379],{"align":333},[18,380,381],{},[38,382,383],{},"4369",[347,385,386],{"align":333},"EPMD (Erlang Port Mapper Daemon)",[347,388,389],{"align":333},"Erlang düğümlerinin (nodes) birbirini bulmasını sağlayan isim çözümleme servisi.",[328,391,392,399,402],{},[347,393,394],{"align":333},[18,395,396],{},[38,397,398],{},"25672",[347,400,401],{"align":333},"Erlang \u002F Clustering",[347,403,404],{"align":333},"Kümeleme (clustering) ve düğümler arası iletişim için kullanılır.",[86,406],{},[408,409,411],"h5",{"id":410},"bu-yazıda-yapılan-değişiklikler","Bu Yazıda Yapılan Değişiklikler",[22,413,414,417],{},[25,415,416],{},"11.05.2022: Yazı özeti düzenlendi.",[25,418,419,420,423,424,426,427,429],{},"21.06.2026: Dockerfile içerisindeki ",[38,421,422],{},"\"ROM\""," ve yorum satırı hataları giderildi, Compose sürümü güncellenerek YAML girinti hataları düzeltildi, eski ",[38,425,58],{}," komutları modern ",[38,428,62],{}," standartlarına çekildi, TL;DR özet ve port tablosu eklendi.",[431,432,433],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":128,"depth":128,"links":435},[436,437],{"id":91,"depth":128,"text":92},{"id":247,"depth":128,"text":248,"children":438},[439],{"id":319,"depth":135,"text":320},[441],"technical",null,"2021-03-11","Docker kullanarak Bitnami RabbitMQ container'ını ayağa kaldırma, Dockerfile ile kullanıcı izinlerini ayarlama, docker-compose konfigürasyonu ve port tanımları.",false,"md","\u002Fimages\u002Fhero\u002Fmessage-queue.avif",{},"\u002Ftr\u002Fdocker-ile-rabbitmq-kurulumu",{"title":6,"description":444},"docker-ile-rabbitmq-kurulumu","tr\u002Fdocker-ile-rabbitmq-kurulumu",[454,455,456,457],"docker","full-stack","queue","rabbitmq","2026-06-21","fVQK4QDtiWp4ewhCs9lgpzI86ArF6VB3fgUrntmr9xs",{"prev":461,"next":464,"others":467,"lucky":586,"readingTime":128},{"path":462,"title":463},"\u002Ftr\u002Fgraylog-nedir-docker-ile-nasil-kurulur","Graylog Nedir? Docker Compose ile Adım Adım Kurulum Rehberi",{"path":465,"title":466},"\u002Ftr\u002Fdocker-ile-redis-kurulumu","Docker ile Redis Kurulumu",[468,471,474,477,480,483,486,489,492,495,496,499,502,505,508,511,514,517,520,523,526,529,532,535,538,541,544,547,550,553,556,559,562,565,568,571,574,577,580,583],{"path":469,"title":470},"\u002Ftr\u002Fes6-nedir-ecmascript-2015-nedir","ES6 Nedir? ECMAScript 2015 Nedir?",{"path":472,"title":473},"\u002Ftr\u002Fes9-nedir-ecmascript-2018-nedir","ES9 Nedir? ECMAScript 2018 Nedir?",{"path":475,"title":476},"\u002Ftr\u002Fphp-ve-makine-ogrenimi-php-ml-kutuphanesi","PHP ve Makine Öğrenimi: PHP-ML Kütüphanesi ile Pratik Çözümler",{"path":478,"title":479},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-factory-method-nedir","Factory Method Tasarım Deseni Nedir?",{"path":481,"title":482},"\u002Ftr\u002Ffactory-method-ve-abstract-factory-farki-nedir","Factory Method ve Abstract Factory Farkı Nedir?",{"path":484,"title":485},"\u002Ftr\u002Fdocker-ile-mongodb-kurulumu","Docker ile MongoDB Kurulumu",{"path":487,"title":488},"\u002Ftr\u002Fsingleton-tasarim-deseni-nedir","Singleton Tasarım Deseni Nedir?",{"path":490,"title":491},"\u002Ftr\u002Fphp-8-0-yenilikler","Merhaba PHP 8: Modern PHP 8.x Çağı",{"path":493,"title":494},"\u002Ftr\u002Fvisitor-tasarim-deseni-nedir","Visitor Tasarım Deseni Nedir?",{"path":465,"title":466},{"path":497,"title":498},"\u002Ftr\u002Fwebpack-nedir","Webpack Nedir? Modern JavaScript Paketleyici Ekosistemi",{"path":500,"title":501},"\u002Ftr\u002Faws-ec2-uzerinde-docker-ve-full-stack-web-performansi","AWS EC2 Üzerinde Docker ve Full Stack Web Performansı",{"path":503,"title":504},"\u002Ftr\u002Fdocker-nedir","Docker Nedir?",{"path":506,"title":507},"\u002Ftr\u002Ftasarim-kaliplari-design-patterns-abstract-factory-nedir","Abstract Factory Tasarım Deseni Nedir?",{"path":509,"title":510},"\u002Ftr\u002Fubuntu-20-04-composer-kurulumu","Ubuntu 20.04 - Composer Kurulumu",{"path":512,"title":513},"\u002Ftr\u002Frest-api-kimlik-dogrulama-nasil-yapilir","REST API Kimlik Doğrulama Nasıl Yapılır?",{"path":515,"title":516},"\u002Ftr\u002Ftailwind-css-just-in-time-modu","Tailwind CSS Just-in-Time (JIT) Modu Nedir?",{"path":518,"title":519},"\u002Ftr\u002Fbridge-tasarim-deseni-nedir","Bridge Tasarım Deseni Nedir?",{"path":521,"title":522},"\u002Ftr\u002Froot-yetkisi-olmayan-kullanici-ssh-baglantisini-ssh-baglantisini-ssh-anahtari-ile-nasil-kurabilir","Root yetkisi olmayan kullanıcı, SSH bağlantısını, SSH anahtarı ile nasıl kurabilir?",{"path":524,"title":525},"\u002Ftr\u002Fmerhaba-gluster","Merhaba Gluster: Dağıtık Dosya Sistemi Nedir?",{"path":527,"title":528},"\u002Ftr\u002Frest-api-tasarimi","REST API Tasarım İncelikleri",{"path":530,"title":531},"\u002Ftr\u002Fapi-gateway-nedir","API Gateway Nedir? Ne İşe Yarar?",{"path":533,"title":534},"\u002Ftr\u002Frabbitmq-nedir","RabbitMQ Nedir?",{"path":536,"title":537},"\u002Ftr\u002Fbuilder-tasarim-deseni-nedir","Builder Tasarım Deseni Nedir?",{"path":539,"title":540},"\u002Ftr\u002Fphalcon-frameworkun-gelecegi","Phalcon Framework'ün Geleceği: Bir Devrin Sonu",{"path":542,"title":543},"\u002Ftr\u002Fjwt-guvenli-mi-guvenlik-acigi-olusturmayin","JWT Güvenli Derken Güvenlik Açığı Oluşturmayın",{"path":545,"title":546},"\u002Ftr\u002Frest-api-hata-yonetimi","REST Api Hata Yönetimi",{"path":548,"title":549},"\u002Ftr\u002Ffull-stack-proje-gelistiriyoruz","Full Stack Proje Geliştiriyoruz",{"path":551,"title":552},"\u002Ftr\u002Fnostalji-ibibik-online","Nostalji: İbibik Online (1998'den Bir Web Macerası)",{"path":554,"title":555},"\u002Ftr\u002Fvue-js-nedir","Vue.js Nedir? Yeni Başlayanlar İçin Rehber",{"path":557,"title":558},"\u002Ftr\u002Fdocker-ile-mariadb-kurulumu","Docker ile MariaDB Kurulumu",{"path":560,"title":561},"\u002Ftr\u002Fdigital-oceanda-vps-kurulumu","DigitalOcean'da VPS (Droplet) Kurulumu: Adım Adım Rehber",{"path":563,"title":564},"\u002Ftr\u002Fprototype-tasarim-deseni-nedir","Prototype Tasarım Deseni Nedir?",{"path":566,"title":567},"\u002Ftr\u002Fekran-filtresi-mavi-isik-filtresi-flux","Gözlere dost, mavi ışığa düşman ekran filtresi f.lux",{"path":569,"title":570},"\u002Ftr\u002Fprogralama-ipucu-yoda-gosterimi","Yoda Koşulları (Yoda Conditions) Nedir? Programlama İpucu",{"path":572,"title":573},"\u002Ftr\u002Ffull-stack-proje-agaci","Full-Stack Proje Yol Haritası ve İçindekiler",{"path":575,"title":576},"\u002Ftr\u002Fjavascriptde-moduller","JavaScript'te Modüller",{"path":578,"title":579},"\u002Ftr\u002Frestful-api-bilesenleri","RESTful API Bileşenleri",{"path":581,"title":582},"\u002Ftr\u002Flitespeed-web-server-performans-artisi","Konfor Alanından Çıkıp, Konforlu Bir VPS'e Geçmek: LiteSpeed Web Server",{"path":584,"title":585},"\u002Ftr\u002Fdesign-patterns-tasarim-desenleri-nedir","Design Patterns \u002F Tasarım Desenleri nedir?",{"path":527,"title":528},[588,590,592,596],{"path":465,"title":466,"date":589},"2021-03-09",{"path":557,"title":558,"date":591},"2021-03-01",{"path":593,"title":594,"date":595},"\u002Ftr\u002Fdocker-ve-portainer-kurulumu","Docker ve Portainer Kurulumu","2021-02-21",{"path":548,"title":549,"date":597},"2021-02-16",[599,603,605],{"path":600,"title":601,"date":602},"\u002Ftr\u002Fecmascript-nedir-ecmascript-ne-degildir-bilinmesi-gerekenler","ECMAScript Nedir? Bilinmesi Gerekenler...","2021-10-20",{"path":524,"title":525,"date":604},"2020-12-10",{"path":584,"title":585,"date":606},"2021-07-24",1782142068885]