본문 바로가기
Docker

[Docker] Postgres 컨테이너 실행 에러: initdb not found

by dbs_ 2024. 11. 7.

 

 

상황

  • docker-compose.yml 파일에 postgres:13 이미지를 추가하고 컨테이너 구동 했으나, 다음과 같은 에러가 발생. 

 

에러

  • Postgres container failing with initdb error: program "postgres" is needed by initdb but was not found.

 

원인

  • 위 에러는 postgres:13 이미지가 Docker 19 버전과의 호환성 문제로 인해 발생하는 것으로 보임. postgres:13 이미지가 최신 운영 체제와 패키지 호환성을 위해 업데이트된 환경을 사용하면서, Docker의 특정 버전에서는 필요한 패키지나 파일 경로가 다르거나 누락되어 이 문제가 발생할 수 있음. 

 

해결 과정

  • 이미지 버전을 postgres:13에서 postgres:13-bullseye로 변경하여 문제를 해결함. bullseye 버전은 Debian Bullseye 기반으로 빌드되어 CentOS와 Docker 19 환경에서 호환성이 높으며, 필요한 프로그램 경로를 올바르게 설정하여 initdb 프로세스가 정상 작동할 수 있도록 지원함. 이미지 버전을 bullseye로 변경한 후 컨테이너가 정상적으로 구동되는 것을 확인함.