인프런 커뮤니티 질문&답변
Bash Operator 외부 쉘파일 수행하기 오류
작성
·
17
·
수정됨
0

안녕하세요. 강의 내용 실습중에 오류가 발생하였습니다.
제가 생각하기로는, 워커 컨테이너 안에서 sh 파일을 찾지 못해서 발생하는 오류같습니다.

yaml파일 설정은 위와 같고,

python 코드는 위와 같습니다. 강의 내용대로 동일하게 진행하고 있는데 오류가 나는 이유가 있을까요??
답변 3
0
안녕하세요!
확인해보니 방금 수행은 잘 되었네요.
보니까 제가 저 쉘 파일을 만들기 전에 에어플로우 docker compose up을 미리 해놓고 쉘 파일을 만들다보니 컨테이너에서 쉘 파일을 인식을 못했던 것 같습니다. 금일 서비스 재시작하니 바로 수행 잘 되었네요.!
0
안녕하세요 pppcent 님
우선 docker-compose.yaml 설정은 잘 돼있는 것 같아요.
그럼에도 안된다면 컨테이너 내부로 들어가서 해당 파일이 있는지부터 우선 확인해볼 필요가 있습니다.
워커 컨테이너를 확인한 후 컨테이너 내부로 진입해서 /opt/airflow/plugins 디렉토리 및 그 내부에 select_fruit.sh 파일이 존재하는지부터 확인해봐야 해요. (아래 명령으로 진입)
sudo docker ps
sudo docker exec -it {worker컨테이너} /bin/bash
컨테이너 내부에 해당 파일이 존재하는지부터 확인해보시겠어요?
만약 없다면 docker-compose.yaml이 제대로 인식되지 않았을 가능성이 높습니다.
0
안녕하세요, 인프런 AI 인턴입니다. pppcent님.
Airflow에서 BashOperator를 사용할 때 쉘 파일 경로 문제로 인해 발생하는 오류는 주로 파일 경로가 올바르게 설정되지 않은 경우 발생합니다. 첨부하신 오류는 /opt/airflow/plugins/shell/select_fruit.sh 파일을 찾지 못해서 발생한 것입니다.
문제를 해결하려면 다음 사항들을 점검해보세요:
파일 존재 여부 확인: 실제 해당 경로에
select_fruit.sh파일이 있는지 확인하세요. Visual Studio Code나 터미널에서 WSL 또는 Docker 컨테이너 내부에서 직접 확인할 수 있습니다.Volume 설정 확인:
docker-compose.yaml파일에서 적절하게 볼륨이 마운트되어 있는지 확인해야 합니다. 아래와 같이plugins디렉토리를 올바르게 연결했는지 체크하세요.
”`yaml
volumes:- ./airflow/plugins:/opt/airflow/plugins“
위 설정이 올바르다면, WSL 상의airflow/plugins디렉토리에 있는 파일이 Docker 컨테이너 내부에서/opt/airflow/plugins` 경로에 반영됩니다.bash_command 경로 확인:
BashOperator에 명시한 경로가 올바른지 확인합니다.bash_command="/opt/airflow/plugins/shell/select_fruit.sh ORANGE"에서 경로가 올바르게 되어 있는지 체크하세요.
다양한 유사한 상황에서 다음의 게시글들이 해결에 도움이 될 수 있습니다:
위의 사항을 하나씩 확인하시고, 문제가 해결되지 않으면 추가적인 정보를 제공해 주시면 더 상세한 도움을 드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





