File tree Expand file tree Collapse file tree 3 files changed +45
-11
lines changed
Expand file tree Collapse file tree 3 files changed +45
-11
lines changed Original file line number Diff line number Diff line change 1818 - name : 코드 체크아웃
1919 uses : actions/checkout@v4
2020
21- - name : 인프라 환경변수 최신화
21+ - name : 인프라 환경변수 및 설정 파일 최신화
2222 run : |
2323 sudo mkdir -p /var/prod_config/infra
2424 sudo install -m 600 /dev/null /var/prod_config/infra/.env.prod
@@ -30,12 +30,14 @@ jobs:
3030 echo "MYSQL_USER=${{ secrets.PRODUCT_DB_USERNAME }}"
3131 echo "MYSQL_PASSWORD=${{ secrets.PRODUCT_DB_PASSWORD }}"
3232 echo "RABBITMQ_USERNAME=${{ secrets.PRODUCT_RABBITMQ_USERNAME }}"
33- echo "RABBITMQ_PASSWORD=${{ secrets.PRODUCT_RABBITMQ_PASSWORD }}"
34- echo "RABBITMQ_HOST=${{ secrets.PRODUCT_RABBITMQ_HOST }}"
35- echo "RABBITMQ_PORT=${{ secrets.PRODUCT_RABBITMQ_PORT }}"
36- echo "RABBITMQ_MANAGEMENT_PORT=${{ secrets.PRODUCT_RABBITMQ_MANAGEMENT_PORT }}"
33+ echo "RABBITMQ_PASSWORD=${{ secrets.PRODUCT_RABBITMQ_PASSWORD }}"
34+ echo "RABBITMQ_HOST=${{ secrets.PRODUCT_RABBITMQ_HOST }}"
35+ echo "RABBITMQ_PORT=${{ secrets.PRODUCT_RABBITMQ_PORT }}"
36+ echo "RABBITMQ_MANAGEMENT_PORT=${{ secrets.PRODUCT_RABBITMQ_MANAGEMENT_PORT }}"
3737 } | sudo tee /var/prod_config/infra/.env.prod >/dev/null
3838
39+ sudo chmod +x docker-compose/redis-init.sh
40+
3941 - name : 인프라 서비스 재시작
4042 run : |
4143 docker compose -f "$COMPOSE_FILE" down
Original file line number Diff line number Diff line change @@ -61,16 +61,12 @@ services:
6161 - " 6379:6379"
6262 volumes :
6363 - denamu-redis:/data
64+ - ./redis-init.sh:/usr/local/bin/redis-init.sh:ro
6465 networks :
6566 - Denamu
6667 env_file :
6768 - /var/prod_config/infra/.env.prod
68- entrypoint :
69- [
70- " sh" ,
71- " -c" ,
72- " redis-server & sleep 5 && echo 'ACL SETUSER ${REDIS_USER} on >${REDIS_PASSWORD} allkeys allcommands' | redis-cli && tail -f /dev/null" ,
73- ]
69+ entrypoint : ["/usr/local/bin/redis-init.sh"]
7470 healthcheck :
7571 test : ["CMD", "redis-cli", "ping"]
7672 interval : 10s
Original file line number Diff line number Diff line change 1+ #! /bin/sh
2+ set -e
3+
4+ # Redis 서버를 백그라운드에서 시작
5+ redis-server --daemonize yes
6+
7+ # Redis가 완전히 시작될 때까지 대기
8+ sleep 5
9+
10+ # 환경변수를 사용하여 ACL 사용자 생성
11+ # 컨테이너 내부에서 실행되므로 env_file로 주입된 환경변수 사용 가능
12+ if [ -n " $REDIS_USER " ] && [ -n " $REDIS_PASSWORD " ]; then
13+ # heredoc을 사용하여 비밀번호 노출 방지
14+ if redis-cli << EOF
15+ ACL SETUSER $REDIS_USER on >$REDIS_PASSWORD allkeys allcommands
16+ ACL SAVE
17+ EOF
18+ then
19+ echo " Redis ACL user created and saved: $REDIS_USER "
20+ else
21+ echo " Error: Failed to create Redis ACL user"
22+ exit 1
23+ fi
24+ else
25+ echo " Warning: REDIS_USER or REDIS_PASSWORD not set"
26+ echo " Error: Redis credentials are required"
27+ exit 1
28+ fi
29+
30+ # ACL 설정이 완료되었으므로 Redis를 안전하게 종료
31+ redis-cli shutdown
32+ # Redis가 완전히 종료될 때까지 대기
33+ sleep 2
34+
35+ # 포그라운드로 Redis 재시작 (컨테이너가 종료되지 않도록)
36+ exec redis-server
You can’t perform that action at this time.
0 commit comments