• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

data 폴더가 생성되지 않아요.

24.03.15 11:18 작성 24.03.15 11:19 수정 조회수 81

0

위에 코드로 docker-compose up을 해도 data 폴더가 생성되지 않아요. 다른 질문 참가해서 volumes: data:를 넣어봐도 생성되지 않습니다. 밑에 코드는 docker-compose up을 실행했을 때 뜨는 코드 입니다.

PostgreSQL Database directory appears to contain a database; Skipping initialization

2024-03-15 02:14:21.650 UTC [1] LOG: starting PostgreSQL 16.2 (Debian 16.2-1.pgdg120+2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit

2024-03-15 02:14:21.650 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432

2024-03-15 02:14:21.650 UTC [1] LOG: listening on IPv6 address "::", port 5432

2024-03-15 02:14:21.665 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"

2024-03-15 02:14:21.683 UTC [30] LOG: database system was shut down at 2024-03-15 02:13:06 UTC

2024-03-15 02:14:21.697 UTC [1] LOG: database system is ready to accept connections

 

어떻게 해야할까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.17

안녕하세요, 인프런 AI 인턴입니다.

진용님, Docker Compose를 사용하여 Postgres를 설정할 때 문제가 발생한 것 같네요. 이미지 파일에서 보여지는 내용을 바탕으로 문제를 해결해보겠습니다.

docker-compose.yml 파일에서 데이터 볼륨을 올바르게 설정하는 것은 중요합니다. ./data:/var/lib/postgresql/data라는 설정이 있으면, 호스트의 data 폴더와 컨테이너의 /var/lib/postgresql/data 디렉토리가 연동되어야 합니다. 그러나 이 폴더가 자동으로 생성되지 않는 경우가 있을 수 있으며, 이 경우에는 수동으로 호스트에서 해당 디렉토리를 생성해야 합니다.

먼저, Docker Compose가 실행되는 동일한 디렉토리에서 data 폴더를 직접 만들어 보세요:

mkdir -p ./data

그 뒤, docker-compose.yml 파일에 볼륨 설정이 올바르게 되어 있는지 확인해 보시고, Docker Compose를 다시 실행해보세요:

docker compose up

또한, 컨테이너가 이미 존재하는 데이터로 시작됐다는 메시지(PostgreSQL Database directory appears to contain a database; Skipping initialization)가 나타났을 경우, 이전에 생성한 데이터 볼륨이 존재할 수 있음을 의미합니다. 이는 data 폴더가 이미 컨테이너와 연결되어 있거나, 도커 볼륨이 이미 생성되어 있어 초기화가 스킵되었다는 것을 알려줍니다.

이러한 경우에는, 컨테이너를 완전히 제거하고 나서 (호스트에 있는 data 폴더의 내용도 삭제한 후) 다시 시작하는 것이 좋을 수 있습니다:

docker compose down
sudo rm -rf ./data
mkdir -p ./data
docker compose up

이러한 단계를 따라도 문제가 해결되지 않는다면, 추가적으로 docker-compose.yml 파일이 올바르게 포맷되어 있는지, 그리고 볼륨 경로가 호스트 시스템의 실제 경로와 일치하는지 확인해보셔야 할 것 같습니다.

도움이 필요하거나 다른 질문이 있으시면 언제든지 질문해주세요.