refactor(docker): Redis 를 기본 비활성으로 전환 (Compose profile)
Redis 컨테이너가 항상 떠 있었지만 애플리케이션은 사용하지 않았다. 쓰지 않는 컨테이너는 메모리를 차지하고 "이게 왜 떠 있지" 하는 혼란을 준다. - redis 서비스를 profiles: ["redis"] 로 숨겨 기본 기동에서 제외 - backend 의 redis 의존성을 required: false 로 두어 없어도 정상 기동 - 루트 .env 의 COMPOSE_PROFILES 한 줄로 켤 수 있게 함 (데이터 볼륨과 REDIS_* 는 유지되어 켜면 이전 상태가 그대로 이어진다) profile 미지정 시 서비스 목록에서 제외되는 것, redis 없이 앱이 정상 동작하는 것, COMPOSE_PROFILES=redis 로 다시 기동되는 것을 모두 확인했다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+8
-1
@@ -73,8 +73,10 @@ services:
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
# redis 는 profile 로 비활성화될 수 있으므로 선택적 의존으로 둔다
|
||||
redis:
|
||||
condition: service_healthy
|
||||
required: false
|
||||
healthcheck:
|
||||
# localhost 는 컨테이너 안에서 ::1 로 먼저 해석되는데 Node 는 0.0.0.0(IPv4) 바인딩이므로 127.0.0.1 을 명시한다
|
||||
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:${BACKEND_PORT}/ || exit 1"]
|
||||
@@ -120,9 +122,14 @@ services:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
|
||||
# ----------------------------------------
|
||||
# 4. Redis — 내부 네트워크 전용
|
||||
# 4. Redis — 내부 네트워크 전용 · 기본 비활성
|
||||
#
|
||||
# 기본적으로 기동하지 않는다. 캐시/세션 공유가 실제로 필요해질 때 켠다.
|
||||
# 루트 .env.{APP_ENV} 에서 COMPOSE_PROFILES=redis
|
||||
# 또는 일회성으로 docker compose --profile redis up -d
|
||||
# ----------------------------------------
|
||||
redis:
|
||||
profiles: ["redis"]
|
||||
container_name: ${PROJECT_NAME}-redis
|
||||
image: ${REDIS_IMAGE}
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD}
|
||||
|
||||
Reference in New Issue
Block a user