docker container에서 사용된 파일은 container가 종료될때 함께 사라진다. 즉, airflow DAG도 마찬가지로 컨테이너가 종료되면 사라진다. 우리는 보통은 일회성으로 DAG를 사용하길 희망하진 않는다. 그래서 container가 생성될 때 외부(WSL)의 volume을 마운트 할 수 있도록 설정하면 DAG를 지속적으로 사용할 수 있다.
① WSL 내에 실행을 희망하는 DAG 파일이 존재한다는 전제하에, ② 'docker-compose.yaml' 파일을 수정하여 위 조건을 달성할 수 있다.
'docker-compose.yaml' 파일내에 'volumes' 항목을 수정하면 airflow와 WSL 내의 DAG를 연결해줄수 있다. 'volumes' 항목은 WSL의 디렉토리와 연결해줄 컨테이너 디렉토리를 매핑해주는 부분이라고 보면된다.
아래 volumes 항목을 보면 각 행에 ":" 이 모두 포함되어있는것을 확인할 수 있다. 이 ":"을 기준으로 좌측이 WSL의 볼륨, 그리고 우측이 docker container의 볼륨이라고 보면된다. 이곳에서 WSL내의 어떤 디렉토리를 어떤 컨테이너에 연결시켜줄지 설정해줄수 있다.
예를들어, 도커 컨테이너가 WSL의 특정 디렉토리에서 DAG파일을 가져오고싶다면 ":/opt/airflow/dags" 좌측 부분을 희망하는 디렉토리 경로로 수정해주면된다. 이 위치에 DAG 파일들이 있는 경로를 설정해준다면, 도커 컨테이너가 실행될때마다 해당 디렉터리를 바라보며 파일을 읽어온다.
해당 경로에는 아래와 같은 DAG 파일들이 있는데, 컨테이너가 실행될때마다 해당 경로를 바라보며 아래 DAG파일들을 가져오게되는 것이다.
'airflow' 카테고리의 다른 글
[airflow] CustomOperator (0) | 2024.01.23 |
---|---|
[airflow] hook (0) | 2024.01.10 |
[airflow] Xcom (0) | 2023.12.12 |
[airflow] task 내 함수 선언 (1) | 2023.12.10 |
[airflow] WSL (0) | 2023.12.03 |