[Solved] Postgres and Docker Compose; password authentication fails and role 'postgres' does not exist.

snooby·2022년 8월 23일
3

🐳 kubernetes

목록 보기
32/63
post-thumbnail

Docker로 Postgres를 구동하고 띄워서 작업을 하고 있다.

그러기 위해 Docker-compose.yml 파일을 다음같이 작성하고 진행하였다.
environment로 POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB 등을 설정하였다.

db: # 서비스 명
    image: postgres:14.1 # 사용할 이미지
    restart: always
    container_name: jem_postgres # 컨테이너 이름 설정
    env_file:
      - .env
    volumes:
      - ${PWD}/db/database:/var/lib/postgresql/data
    ports:
      - '5432:5432'

분명 잘 설정하고 접속을 하려는데... 자꾸 password authentication fails and role 'postgres' does not exist.
내가 user 만들어서 해도 그 user없다고 하고 안만들고 postgres로 들어가도 없다고 뜬다....

원인

소스에 보이지만 볼륨을 사용 중이다.

해당 볼륨이 비어 있는 경우에만 데이터베이스가 작성됩니다.
그렇지 않으면 해당 위치에서 찾은 데이터베이스를 재사용합니다.
해당 데이터베이스가 POSTGRES_USER의 다른 설정에서 생성된 경우, 예상하는 사용자가 해당 데이터베이스에 없습니다.

그래서... 지금껏 이전에 만들어 둔게 캐시?개념처럼 남아서 적용이 안되고 난리를 쳤던것 ㅠㅠ

해결방안

로컬의 볼륨 디렉토리를 삭제하고 다시 실행시켰습니다.
아주 잘 됩니다!!ㅎㅎㅎ

profile
DevOps 🐥

0개의 댓글