Summary

  • postgres_custom 컨테이너 서비스를 services: 하위에, 관련 volumes 항목도 함께 추가한다.
  • 컨테이너는 기본적으로 유동 IP를 지니므로, networks를 통해 고정 IP를 할당해야 재기동 시 IP 변동을 막을 수 있다.
  • docker-compose.yaml에서 커스텀 DB Port를 지정해도, airflow 내 컨테이너 간 연결은 항상 5432 포트를 사용해야 한다.

Postgres 컨테이너 추가

postgres_custom 컨테이너 서비스를 services: 하위 항목에 추가하고, volumes에 항목도 추가한다.


컨테이너 고정 IP 할당

고정 IP 설정 이유

  • 기본적으로 컨테이너들은 유동 IP를 지녀 재기동 시 IP가 변동될 수 있다.
  • 고정 IP를 미지정하면 컨테이너들은 default network에 묶인다.
  • 따라서 networks를 통해 고정 IP를 할당하여 동일 네트워크에 배치한다.

postgres_custom 서비스에 networks 항목을 추가한다.

  • network_custom 네트워크 선언
  • ipv4_address: 고정 IP 지정
  • services와 동일 계층의 networks 항목 생성

대역폭 설정

172.28.0.0에서 대역폭 28을 사용하는 이유

default network에서 25.0 대역폭을 사용하므로, 충돌 방지를 위해 28을 사용한다.

# 현재 네트워크 목록 확인
sudo docker network ls
# 컨테이너 상세 목록 확인
sudo docker inspect {CONTAINER ID}

DB 접속

port 설정

docker-compose.yaml에 커스텀 DB Port를 9999로 설정해도 airflow 내에서는 5432로 지정해야 한다. 로컬에서는 9999 포트로 연결하지만, 컨테이너 간 연결은 5432 포트로 연결되기 때문이다.