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 포트로 연결되기 때문이다.