인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

rosy님의 프로필 이미지
rosy

작성한 질문수

Airflow 마스터 클래스

db container connection 에러

작성

·

16

·

수정됨

0

안녕하세요! 강사님

몇달 전에 듣고 복습중인데요

몇달 전에 들었을때,

image.png

 

이렇게 잘 db를 생성했었습니다.

그리고 vi docker-compose.yaml 아래와 같이 수정하였지만

image.png

 

image.png

 

적용이 안되네요...ㅠㅠ

그리고 이전에 생성했던 게 그대로 실행되고 있습니다...!

당연히 dags_python_with_postgres.py 실행하면 아래와 같이 connection 오류가 발생하구요...

image

 

혹시 해당 문제 어떻게 해결해야할 지 알 수 있을까요?!

 

답변 2

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 rosy 님!
일단 sudo docker ps 명령을 했을 때 postgres_custom 컨테이너가 정상 상태인지 확인해보시구요.

음 아마도 srkim 이라고 이전에 만들었던 DB의 내용이 그대로 인식된게 아닌가 합니다.

컨테이너 DB에 연결되는 볼륨은 로컬 디렉토리와 연결되는데, 기존에 만들었던 DB볼륨의 내용이 새로 만드신 custom_srkim 과 연결되면서 문제가 될 수도 있어요.

우선 volume을 새로 하나 지정하고 만들어 보시겠어요?

docker-compose.yaml 파일 하단에 보시면 volume 항목이 정의되어 있습니다.

volumes:
  postgres-db-volume:
  postgres-custom-db-volume:

저기에 새로운 볼륨을 하나 추가하신 다음에 custom_srkim 의 volume 항목 지정시 새로 만든 volume을 연결해보세요.

volumes:
  postgres-db-volume:
  postgres-custom-db-volume:
  postgres-custom-srkim-volume:

그리고 postgres_custom 컨테이너 서비스 항목에는 아래처럼 지정하시면 됩니다.

services:
  postgres_custom:
    image: postgres:13
    environment:
      ...
    volumes:
      - postgres-custom-srkim-volume:/var/lib/postgresql/data
    ports:
      - 5431:5432
    networks:
      network_custom:
        ipv4_address: 172.28.0.3

 

이렇게 만든 후 docker compose up 해보시고 접속해보시겠어요?

0

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

db container connection 문제로 인해 어려움을 겪고 계신 점 안타깝네요. PostgreSQL 컨테이너 구성과 관련된 연결 오류의 경우, 다음 몇 가지를 점검해보는 것이 좋습니다:

  1. docker-compose.yaml 설정 확인:

    • postgres_custom 서비스의 포트가 5431:5432로 올바르게 매핑되어 있는지 확인하세요.
    • 네트워크 설정에서 network_custom이 올바르게 정의되고, 모든 서비스에 연결되어 있는지 확인해보세요.
  2. 현재 실행 중인 컨테이너 상태 확인하기:

    • docker ps 명령어를 사용하여 실행 중인 컨테이너의 상태를 확인하세요. PostgreSQL 컨테이너가 정상적으로 실행되고 있지 않다면, 로그를 확인하여 에러 메시지를 파악하는 것이 중요합니다.
  3. Postgres 컨테이너의 로그 확인:

    • docker logs [컨테이너_ID] 명령어로 PostgreSQL 컨테이너에 대한 로그를 확인하여, 오류가 발생하는 원인을 파악할 수 있습니다.
  4. PostgreSQL 설정 확인:

    • postgresql.conf 파일에서 listen_addresses와 포트가 올바르게 설정되어 있는지 확인하십시오. 기본값으로 *로 설정되어 있는지 확인하세요.
  5. task 실행 시 Python 스크립트 파라미터 확인:

    • dags_python_with_postgres.py에서 사용하는 IP와 포트 번호가 docker-compose.yaml 파일과 일치하는지 확인하십시오.

다음 질문에서 유사한 문제에 대한 답변이 논의되었으니, 참고하시면 도움이 될 수 있습니다: section 8 postgres 연결 안됨

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rosy님의 프로필 이미지
rosy

작성한 질문수

질문하기