RabbitMQ 시작하기
Installation on ubuntu
ubuntu 에 rabbitmq 를 설치하고 실제 동작시켜 보자.
본 글에서는 실제 ubuntu 피씨가 아닌 docker ubuntu image 를 사용하도록 한다.
Ubuntu image 실행
아래 명령어를 통해 도커 우분투 이미지를 실행하고 콘솔에 들어가도록 하자.
1 2
| docker pull ubuntu docker run -it ubuntu
|
sudo 및 curl 설치
기본 우분투 이미지에는 sudo 와 curl 명령어가 없기 때문에 아래 명령어를 통해 sudo 와 curl 을 설치해 준다.
1 2 3
| apt-get update&& apt-get install -y sudo && apt-get -y install curl
|
Erlang/OTP 다운로드
Rabbitmq 를 내부적으로 erlang/otp 를 사용하기 때문에 적합한 버젼을 설치해 주어야 한다.
하지만 현재 erlang 버전은 너무 오래되었기 때문에 rabbitmq 팀에서 별도의 erlang 을 관리하고 배포하고 있는데 이를 설치하기 위해 다음과 같은 절차를 거친다.
먼저 apt-key 에 다음 키를 추가한다.
1 2
| apt-get install -y gnupg2 && apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
|
데비안 계열 운영체제가 레포지토리를 등록하기 위해서 다음 파일에 레포지토리를 등록해 주어야 한다.
이를 통해 apt-get 명령어가 해당 레포지토리를 찾고 패키지를 설치할 수 있다.
/etc/apt/sources.list.d/bintray.erlang.list 파일에
1
| deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
|
를 추가하면 되며 아래와 같은 명령어를 통해 한번에 세팅할 수 있다.
1 2 3 4 5
| cd /etc/apt/sources.list.d && touch bintray.erlang.list && echo "deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang" >> bintray.erlang.list && echo register finished! && cat bintray.erlang.list
|
등록한 레포지토리를 설치해준다.
RabbitMQ 및 rabbitmq-server 설치
1 2
| curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash && apt-get install -y rabbitmq-server
|
Getting started
서버 시작하기
1 2 3
| rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app
|
큐 비우기
1
| sudo rabbitmqctl purge_queue queue_name
|
Final dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| FROM ubuntu
WORKDIR /
RUN rm -rf /var/lib/apt/lists/* RUN apt-get update
RUN apt-get install -y sudo && apt-get -y install curl
RUN apt-get install -y gnupg2 RUN apt-key adv --keyserver "hkps.pool.sks-keyservers.net" --recv-keys "0x6B73A36E6026DFCA"
RUN cd /etc/apt/sources.list.d && touch bintray.erlang.list && echo "deb http://dl.bintray.com/rabbitmq-erlang/debian bionic erlang" >> bintray.erlang.list && echo register finished! && cat bintray.erlang.list
RUN apt-get update
RUN curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash
RUN apt-get install -y rabbitmq-server EXPOSE 3001 EXPOSE 5672 EXPOSE 15672
CMD [ "rabbitmq-server","start" ]
|