Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions .github/workflows/deploy-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -297,17 +297,21 @@ jobs:

echo "Ensure redis container"

# 리프레시 토큰 저장소. 이미 떠 있으면 건드리지 않는다.
# 재시작해도 로그인 세션이 끊기지 않도록 배포마다 지우지 않는다.
if [ -z "$(docker ps -q -f name=^redis$)" ]; then
docker rm redis || true
docker run -d \
--name redis \
--restart unless-stopped \
--network hackathon-network \
redis:7-alpine \
redis-server --save 60 1 --appendonly no
fi
# 리프레시 토큰 저장소. 이미 있으면 그대로 쓰고, 없을 때만 만든다.
# 배포마다 지우면 로그인 세션이 전부 끊긴다.
#
# 조건문에 명령 치환을 쓰지 않는다. 이 스크립트는 인용하지 않은 heredoc
# (<< EOF)으로 SSH 에 넘어가므로 $(...) 가 EC2 가 아니라 러너에서 평가된다.
# 러너에는 이 컨테이너가 없어 조건이 항상 참이 되고, 이미 떠 있는 컨테이너를
# 다시 만들려다 이름 충돌로 배포가 죽는다. 실제로 한 번 겪었다.
#
# docker start 는 컨테이너가 있으면(멈춰 있어도) 성공하고 없으면 실패한다.
docker start redis 2>/dev/null || docker run -d \
--name redis \
--restart unless-stopped \
--network hackathon-network \
redis:7-alpine \
redis-server --save 60 1 --appendonly no

echo "Stop old container"

Expand Down
Loading