작성
·
37
0
안녕하세요!
유튜브 API로 댓글 받아온 뒤, 텍스트 처리 후 postgres DB에 업로드하는 DAG 생성 py파일을 스터디 중에 있는데요.
텍스트 처리할 때 필요한 아래 패키지를 설치하려고 다음과 같은 시도를 했습니다.
# wsl에서 root 계정으로 진입
sudo docker exec -u root -it <계정명>-airflow-webserver-1 /bin/bash
# 필요한 패키지 설치
apt-get update
apt-get install default-jdk -y
#Airflow 사용자로 전환
su - airflow
#패키지 설치
pip install JPype1
pip install konlpy
#컨테이너 종료 및 재시작
sudo docker-compose down
sudo docker-compose up
하지만 airflow UI에서는 다음과 같은 에러로 DAG를 만든 py파일이 보이지 않습니다.
Broken DAG: [/opt/airflow/dags/youtube_to_postgres.py] Traceback (most recent call last): File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/opt/airflow/dags/youtube_to_postgres.py", line 5, in <module> from konlpy.tag import Okt ModuleNotFoundError: No module named 'konlpy'
필요한 패키지를 설치하는 방법이 잘못되었을까요?
제가 설치해야하는 것들을 설치하는 방법을 알려주시면 감사하겠습니다!
apt-get install default-jdk -y
pip install JPype1
pip install konlpy
답변 1
0
안녕하세요 elin 님
도커 컨테이너는 휘발성입니다. 즉 내렸다가 올리면 기존에 갖고있던 내용은 사라집니다. Elin님이 pip install한 내용도 사라지게 됩니다.
그래서 도커 이미지 자체에 pip install한 내용을 심어줘야 합니다. 그러려면 도커 이미지 빌드를 해야하는데, 도커 이미지 빌드하는 방법은
섹션9. Connection & Hook 에서 더 많은 Provider 확인 & Connection type 추가하기에서 볼 수 있습니다. 이 내용을 아직 안보셨으면 이 내용 먼저 보세요.
그리고 나서 만든 이미지를 바라보고 올라오도록 dockr compose 파일을 수정해주시면 됩니다.
좀 어려울 수 있는데 한번 시도해보세요 ^^