Skip to content

Commit e4ced12

Browse files
authored
Merge pull request #494 from boostcampwm-2024/fix/prod-redis-init
🐛 fix: redis 시작 및 재시작 시 --aclfile /data/users.acl 옵션 추가
2 parents 2f34938 + 7e5e879 commit e4ced12

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

docker-compose/redis-init.sh

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
#!/bin/sh
22
set -e
33

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"
4+
echo "Starting Redis initialization..."
5+
6+
# 환경변수 확인
7+
if [ -z "$REDIS_USER" ] || [ -z "$REDIS_PASSWORD" ]; then
8+
echo "Error: REDIS_USER or REDIS_PASSWORD not set"
279
exit 1
2810
fi
2911

30-
# ACL 설정이 완료되었으므로 Redis를 안전하게 종료
12+
echo "REDIS_USER: $REDIS_USER"
13+
14+
# Redis를 설정 파일과 함께 백그라운드 시작
15+
redis-server --daemonize yes --dir /data --aclfile /data/users.acl
16+
17+
# 시작 대기
18+
sleep 8
19+
20+
# ACL 사용자 생성
21+
echo "Creating ACL user..."
22+
redis-cli ACL SETUSER "$REDIS_USER" on ">$REDIS_PASSWORD" allkeys allcommands
23+
24+
# ACL 설정을 파일에 저장 (이제 가능!)
25+
redis-cli ACL SAVE
26+
echo "ACL saved to /data/users.acl"
27+
28+
# 확인
29+
redis-cli ACL LIST
30+
31+
# Redis 종료
3132
redis-cli shutdown
32-
# Redis가 완전히 종료될 때까지 대기
3333
sleep 2
3434

35-
# 포그라운드로 Redis 재시작 (컨테이너가 종료되지 않도록)
36-
exec redis-server
35+
# 재시작 시에도 ACL 파일 사용
36+
echo "Starting Redis with ACL configuration..."
37+
exec redis-server --dir /data --aclfile /data/users.acl

0 commit comments

Comments
 (0)