postgres의 user, password 변경 후 docker-compose up 발생한 인증 에러

2025. 3. 16. 03:53프로젝트/One Day Chat

원래 사용하던 블로그 - https://yeonnan.hashnode.dev/postgres-user-password-docker-compose-up?source=more_series_bottom_blogs

 

 

 

문제 상황

  1. .env 파일에서 POSTGRES_USER, POSTGRES_PASSWORD 값을 수정함
  2. docker-compose build, docker-compose up으로 컨테이너 재시작 했더니 아래의 에러 발생
psycopg2.OperationalError: connection to server at "db" (----), port 5432 failed: FATAL:  password authentication failed for user


원인 및 해결

  • postgres 컨테이너는 처음 실행될 때 데이터 디렉토리(볼륨)을 초기화하고 유저 및 비밀번호 정보를 저장함
  • 한번 초기화된 데이터 디렉토리가 존재하면 이후 컨테이너를 재시작해도 기존에 저장된 유저/비밀번호 설정이 우선 적용된다.
  • .env 파일에서 새 비밀번호를 설정해도 기존 볼륨 데이터가 우선되기 때문에 변경된 설정이 적용되지 않고 인증 에러가 발생한다.
  • 새로운 유저/비밀번호를 적용하려면 기존 데이터 디렉토리를 삭제 후 재생성해야 함

docker compose 볼륨 삭제 후 재생성 하기

  • 컨테이너와 볼륨을 한꺼번에 제거 : docker-compose down -v
    • -v 옵션을 붙여야 로컬에 저장된 볼륨(데이터) 까지 삭제됨
  • 다시 빌드 및 실행 : docker-compose up --build