Infra/Airflow

Docker 환경에서 Airflow DAG의 패키지 의존성 관리

향식이 2023. 8. 10. 15:01

패키지를 설치하지 않았을 때 나오는 에러 문구

이런 오류가 떴다면 필요한 python 라이브러리를 정의하지 않았거나 설치하지 않았다는 뜻이다.

 

Airflow의 DAG를 Docker 컨테이너 내에서 실행시키려면 requirements.txt파일에 필요한 Python 패키지를 정의하고, 그 패키지들을 Docker 컨테이너 내에 설치해야 한다.

 

이렇게 해야 DAG가 필요한 모듈 및 라이브러리를 올바르게 사용할 수 있다. 

 

1. requirements.txt 작성

예를 들어, 위와 같은 오류 메세지가 뜬 경우 xmltodict라는 라이브러리를 설치하도록 requirements.txt를 작성해주면 된다. 

참 쉽죠?

라이브러리만 작성할 경우 최신버전으로 설치되니 특정 버전을 설치하고 싶다면 ==1.4.0 과 같이 지정해주면 된다.

 

2. Dockerfile 작성

이제 docker를 실행할 때 이 requirements.txt 내의 라이브러리가 설치되도록 작성하면 된다.

Dockerfile 작성 예시

 

해결이 안 된다면..

만약 이렇게 해도 같은 오류가 뜬다면 docker-compose.yaml 파일을 확인해보자. 

기본은 docker-compose.yaml 이다.

dockerfile: 부분의 Dockerfile이 작성한 dockerfile의 파일명과 동일해야 한다. 

반응형