개발일기

Docker compose RabbitMQ 설정하는 방법 본문

photocard backend server 개발일기

Docker compose RabbitMQ 설정하는 방법

한둥둥 2024. 7. 14. 00:29
version: '3'
services:
  rabbitmq:
    image: rabbitmq:3-management-alpine
    container_name: rabbitmq-stream
    volumes:
      - ./.docker/rabbitmq/etc/:/etc/rabbitmq/
      - ./.docker/rabbitmq/data/:/var/lib/rabbitmq/
      - ./.docker/rabbitmq/logs/:/var/log/rabbitmq/
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_ERLANG_COOKIE: "My-Cookies"
      RABBITMQ_DEFAULT_USER: "admin"
      RABBITMQ_DEFAULT_PASS: "rabbitpassword"

 

image: rabbitmq:3-management-alpine

rabbitmq 이미지중에 3-management-alpine 버전을 선택하겠다는 의미이다. 3-management-alpine버전은 두가지 특징이 있다.

 

management : 관리자 UI를 사용할 수 있게 해주는 management: 관리자 UI를 사용할 수 있게 해주는 management plugin 이미지이다. 기본 관리자 username/passwd는 guest/guest이다.

 

alpine: 경량 리누슥 배포판 이미지 

 

volumes:
  - ./.docker/rabbitmq/etc/:/etc/rabbitmq/
  - ./.docker/rabbitmq/data/:/var/lib/rabbitmq/
  - ./.docker/rabbitmq/logs/:/var/log/rabbitmq/

volumes는 도커 컨테이너는 실행 후 컨테이너를 삭제하면 존재하던 데이터가 모두 사라지게 되기 때문에 마운트를 해주는데 필요한 옵션이다. 

 

./.docker/rabbitmq/etc/:/etc/rabbitmq/ 이라면 로컬의 ./.docker/rabbitmq/etc/ 디렉토리를 컨테이너 /etc/rabbitmq/ 디렉토리와 마운트 하겠다는 의미이다. 

 

  • ./.docker/rabbitmq/etc/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf : RabbitMQ configuration 파일을 설정하기 위함
  • ./.docker/rabbitmq/data/:/var/lib/rabbitmq/ : RabbitMQ 데이터에 접근하기 위함
  • ./.docker/rabbitmq/logs/:/var/log/rabbitmq/ : RabbitMQ 로그에 접근하기 위함

 

컨테이너 내부의 환경 변수를 설정하는 옵션이다.

 

    environment:
      RABBITMQ_ERLANG_COOKIE: "My-Cookies"
      RABBITMQ_DEFAULT_USER: "admin"
      RABBITMQ_DEFAULT_PASS: "rabbitpassword"
  • RABBITMQ_ERLANG_COOKIE : RabbitMQ 클러스터를 구성할 때 노드끼리 동일하게 맞춰줘야 하는 값
  • RABBITMQ_DEFAULT_USER : management UI 에서 로그인 username
  • RABBITMQ_DEFAULT_PASS : management UI 에서 로그인 password