해결된 질문
작성
·
393
·
수정됨
답변 1
0
안녕하세요 05305님
맨 아래 캡처하신 것이 WSL 내 디렉토리 정보인거죠?
현재 WSL의 /root/airflow/plugins 디렉토리가 있다면 이것을 컨테이너와 연결하기 위해서는 아래처럼 작성되어야 합니다.
- /root/airflow/plugins:/opt/airflow/plugins
콜론(:)을 기준으로 왼쪽이 WSL의 볼륨, 오른쪽이 컨테이너의 볼륨이죠.
지금 05305님의 경우 강의 내용처럼 아래 그대로 적용되어 있습니다.
- ${AIRFLOW_PROJ_DIR:-.}/airflow/plugins:/opt/airflow/plugins
이것은 WSL의 {yaml파일이 존재하는 디렉토리}/airflow/plugins 디렉토리를 컨테이너와 연결하는 것이므로 /root/airflow/plugins 디렉토리가 컨테이너와 연결되지는 못합니다.
그리고 두 번째 질문주신것은
airflow 도커이미지는 기본적으로 /opt/airflow 경로가 Airflow의 홈 경로입니다.
즉 환경변수로는 $AIRFLOW_HOME=/opt/airflow 입니다. 컨테이너 안으로 들어가서 환경변수를 보면 알 수 있습니다.
강의 뒷부분에서 다루겠지만 airflow의 홈디렉토리 아래의 plugins 디렉토리나 config 디렉토리, dags 디렉토리는 airflow가 DAG 실행시 기본적으로 PYTHON PATH로 인식하게 됩니다.
그래서 /opt/airflow 아래에 dag 디렉토리, plugins 디렉토리, config 디렉토리 등을 연결해주는 것입니다.
컨테이너로 airflow를 실행하는한 plugins나 dags, config 디렉토리는 /opt/airflow 경로 아래에 둬야 합니다.
마지막으로 05305님이 언급하신
제가 root 계정으로 실습 진행하고 있는데 opt를 root 경로로 바꿔봐도 동일한 증상이 계속됩니다.
요것은 지금 yaml의 volumes 항목의 의미에 대해서 헷갈리신것 같은데요. 첫 문장에서 설명한 것이긴 한데 다시 한번 말씀드리자면 콜론(:)을 기준으로 왼쪽이 연결할 WSL의 볼륨, 오른쪽이 연결될 컨테이너의 볼륨입니다.
따라서 WSL상에 존재하는 /root/airflow/plugins 경로를 왼쪽에 입력해야 하는 겁니다.
이해 되셨을까요?
아직 이해 안되셨음 언제든지 질문 또 남겨주세요 ^^
안녕하세요~
어제까지는 분명 안 됐는데 오늘 다시 실행하더니 되네요ㅠㅠ
yaml파일이 root 디렉토리 안에 있어서 wsl의 볼륨을 수정하지 않아도 실행이 됐던 것 같습니다.(어제 안된 이유는 모름ㅠ)
볼륨의 경로의 의미를 정확하게 이해하지 못 했는데 답변 덕분에 yaml 기준의 경로라는것을 완벽 이해할 수 있었습니다.
다시 한 번 좋은 강의 감사드리며 끝까지 달려보겠습니다!