Skip to content

Commit a38aeb0

Browse files
JIWONKIMSclaude
andcommitted
feat(be): Switch to docker-compose for RabbitMQ deployment
- Add docker-compose installation in Terraform user_data - Create infra/rabbitmq-docker-compose.yml as deployment template - Update main.tf to use docker-compose instead of docker run - Update local docker-compose.yml with proper network configuration - RabbitMQ container name: rabbitmq_1 for consistency 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent afa9d63 commit a38aeb0

File tree

3 files changed

+91
-32
lines changed

3 files changed

+91
-32
lines changed

docker-compose.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,26 @@ services:
44
rabbit:
55
image: rabbitmq:3-management # 버전 명시 권장 (예: 3.13-management)
66
container_name: rabbitmq-1
7+
networks:
8+
- common # 이미 존재하는 공용 네트워크 사용
79
ports:
810
- "5672:5672" # AMQP (Spring ↔ RabbitMQ)
911
- "61613:61613" # STOMP (Relay가 여기에 붙음)
1012
- "15672:15672" # Management UI (로컬에서만)
1113
environment:
14+
TZ: Asia/Seoul # 타임존 설정
1215
RABBITMQ_DEFAULT_USER: admin
13-
RABBITMQ_DEFAULT_PASS: admin
14-
volumes: # 영속화가 필요할 때만 유지
15-
- ./dockerProjects/rabbitmq-1/volumes/etc/rabbitmq:/etc/rabbitmq
16-
- ./dockerProjects/rabbitmq-1/volumes/var/lib/rabbitmq:/var/lib/rabbitmq
17-
- ./dockerProjects/rabbitmq-1/volumes/var/log/rabbitmq:/var/log/rabbitmq
16+
RABBITMQ_DEFAULT_PASS: "$PASSWORD_1"
17+
volumes:
18+
- ./volumes/etc/rabbitmq:/etc/rabbitmq
19+
- ./volumes/var/lib/rabbitmq:/var/lib/rabbitmq
20+
- ./volumes/var/log/rabbitmq:/var/log/rabbitmq
1821
command: >
1922
sh -c "
2023
rabbitmq-plugins enable rabbitmq_management &&
2124
rabbitmq-plugins enable rabbitmq_stomp &&
2225
rabbitmq-server
2326
"
27+
networks:
28+
common:
29+
external: true # 이미 만들어진 네트워크를 사용

infra/main.tf

Lines changed: 49 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -263,33 +263,55 @@ CREATE DATABASE \"${var.app_1_db_name}\" OWNER team11;
263263
GRANT ALL PRIVILEGES ON DATABASE \"${var.app_1_db_name}\" TO team11;
264264
"
265265
266-
# rabbitmq 설치
267-
docker run -d \
268-
--name rabbitmq_1 \
269-
--restart unless-stopped \
270-
--network common \
271-
-p 5672:5672 \
272-
-p 61613:61613 \
273-
-p 15672:15672 \
274-
-e RABBITMQ_DEFAULT_USER=admin \
275-
-e RABBITMQ_DEFAULT_PASS=${var.password_1} \
276-
-e TZ=Asia/Seoul \
277-
-v /dockerProjects/rabbitmq_1/volumes/data:/var/lib/rabbitmq \
278-
rabbitmq:3-management
279-
280-
# RabbitMQ가 준비될 때까지 대기
281-
echo "RabbitMQ가 기동될 때까지 대기 중..."
282-
until docker exec rabbitmq_1 rabbitmqctl status &> /dev/null; do
283-
echo "RabbitMQ가 아직 준비되지 않음. 5초 후 재시도..."
284-
sleep 5
285-
done
286-
echo "RabbitMQ가 준비됨. STOMP 플러그인 활성화 중..."
287-
288-
# RabbitMQ STOMP 플러그인 활성화
289-
docker exec rabbitmq_1 rabbitmq-plugins enable rabbitmq_stomp
290-
docker exec rabbitmq_1 rabbitmq-plugins enable rabbitmq_management
291-
292-
echo "RabbitMQ 설치 및 설정 완료!"
266+
# docker-compose 설치
267+
echo "docker-compose 설치 중..."
268+
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
269+
chmod +x /usr/local/bin/docker-compose
270+
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
271+
docker-compose --version
272+
273+
# RabbitMQ docker-compose.yml 생성
274+
mkdir -p /dockerProjects/rabbitmq_1
275+
cat > /dockerProjects/rabbitmq_1/docker-compose.yml <<'RABBITMQ_COMPOSE'
276+
version: "3.8"
277+
278+
services:
279+
rabbitmq:
280+
image: rabbitmq:3-management
281+
container_name: rabbitmq_1
282+
restart: unless-stopped
283+
networks:
284+
- common
285+
ports:
286+
- "5672:5672"
287+
- "61613:61613"
288+
- "15672:15672"
289+
environment:
290+
TZ: Asia/Seoul
291+
RABBITMQ_DEFAULT_USER: admin
292+
RABBITMQ_DEFAULT_PASS: \${PASSWORD_1}
293+
volumes:
294+
- /dockerProjects/rabbitmq_1/volumes/etc/rabbitmq:/etc/rabbitmq
295+
- /dockerProjects/rabbitmq_1/volumes/var/lib/rabbitmq:/var/lib/rabbitmq
296+
- /dockerProjects/rabbitmq_1/volumes/var/log/rabbitmq:/var/log/rabbitmq
297+
command: >
298+
sh -c "
299+
rabbitmq-plugins enable rabbitmq_management &&
300+
rabbitmq-plugins enable rabbitmq_stomp &&
301+
rabbitmq-server
302+
"
303+
304+
networks:
305+
common:
306+
external: true
307+
RABBITMQ_COMPOSE
308+
309+
# RabbitMQ 시작
310+
echo "RabbitMQ 시작 중..."
311+
cd /dockerProjects/rabbitmq_1
312+
docker-compose up -d
313+
314+
echo "RabbitMQ docker-compose 설치 완료!"
293315
294316
echo "${var.github_access_token_1}" | docker login ghcr.io -u ${var.github_access_token_1_owner} --password-stdin
295317

infra/rabbitmq-docker-compose.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
version: "3.8"
2+
3+
services:
4+
rabbitmq:
5+
image: rabbitmq:3-management
6+
container_name: rabbitmq_1
7+
restart: unless-stopped
8+
networks:
9+
- common
10+
ports:
11+
- "5672:5672"
12+
- "61613:61613"
13+
- "15672:15672"
14+
environment:
15+
TZ: Asia/Seoul
16+
RABBITMQ_DEFAULT_USER: admin
17+
RABBITMQ_DEFAULT_PASS: ${PASSWORD_1}
18+
volumes:
19+
- /dockerProjects/rabbitmq_1/volumes/etc/rabbitmq:/etc/rabbitmq
20+
- /dockerProjects/rabbitmq_1/volumes/var/lib/rabbitmq:/var/lib/rabbitmq
21+
- /dockerProjects/rabbitmq_1/volumes/var/log/rabbitmq:/var/log/rabbitmq
22+
command: >
23+
sh -c "
24+
rabbitmq-plugins enable rabbitmq_management &&
25+
rabbitmq-plugins enable rabbitmq_stomp &&
26+
rabbitmq-server
27+
"
28+
29+
networks:
30+
common:
31+
external: true

0 commit comments

Comments
 (0)