코딜기

[Airflow] Airflow에서 외부 스크립트 파일 읽기 (with.docker) 본문

Data Engineering/Airflow

[Airflow] Airflow에서 외부 스크립트 파일 읽기 (with.docker)

코딜기 2024. 5. 29. 15:51
반응형

Airflow에서 외부 파일을 읽기 위한 docker compose yaml 수정

  • Airflow의 Worker 컨테이너는 기본적으로 외부 파일을 인식할 수 없습니다.
  • 컨테이너 안에 파일을 만들어주면 컨테이너 재시작 시 파일이 사라집니다. 
  • docker compose yaml 파일의 volume 부분을 수정하여 worker 컨테이너가 외부 파일을 읽을 수 있도록 설정해 줍니다.
    • 즉, 로컬의 폴더와 airflow의 폴더를 연동시키는 방식이라고 생각하시면 이해하기 편합니다.

docker compose yaml 수정

  • 방법은 아래 부분을 로컬의 plugins 경로로 바꿔주면 됩니다.
  • ${AIRFLOW_PROJ_DIR:-.}은 도커 초기화한 경로이고, 따로 폴더를 수정 및 생성하지 않았다면 아래와 같이 설정해 주시면 됩니다.

※  ':'의 앞부분이 로컬의 plugins 경로이고, 뒷부분이 airflow의 plugins 경로입니다.


실습 중 발생한 시행착오

  • 로컬의 plugin 폴더에 .sh 파일을 저장하고, .sh 파일을 읽는 기능을 하는 DAG를 실행시켰더니 아래와 같은 오류가 발생했다.

  • 문제는 권한 오류로 .sh 파일에 실행 권한이 없었고, chmod를 통해 실행권한을 부여하니 정상적으로 실행이 되었다.

반응형
Comments