개발/Docker&kubernetes

PostgreSql docker 실행 시 Data directory "/var/lib/postgresql/data" has invalid permissions 조치

궁즉변 변즉통 통즉구 2024. 11. 17. 09:39
반응형

docker compose로 postgresql를 띄워서 테스트 해볼 일이 생겨서 간단히 실행을 해봤는데 아래와 같은 디렉토리 permission 에러가 발생했다.

Data directory "/var/lib/postgresql/data" has invalid permissions

 

docker compose 파일은 아래와 같이 작성이 된 상태였다.

version: '3'

services:
  postgres:
    image: postgres
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: postgre
      POSTGRES_USER: postgre
      POSTGRES_PASSWORD: password
    ...

 

일반적으로 chmod, chown 등으로 디렉토리 설정을 하면 해결이 되었는데 이번에는 동일한 에러가 계속 발생을 했다. 계속 이부분에 신경을 쓸 수 없어서 아래와 같이 Named Volume으로 설정하여 해결했다.

version: '3'

volumes:
  postgres_data:
    driver: local
    
services:
  postgres:
    image: postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data # volumn명 지정으로 변경
    environment:
      POSTGRES_DB: postgre
      POSTGRES_USER: postgre
      POSTGRES_PASSWORD: password
    ...

 

 

docker 실행 시 디렉토리에 대한 Permission이나 Ownership 문제 발생 시 별도 volume을 지정해서 해결하는 것도 하나의 방법이다.

 

반응형