linux/arm64 환경에서 Airflow Docker 이미지 구축 시 발생되는 이슈

Juheon Oh·2023년 2월 6일
0

상황

Airflow를 통해 Selenium을 이용한 크롤링을 주기적으로 하고, 윈도우와 맥에서 구동 가능하도록 Docker를 이용하자!

  • M2 Mac 환경에서 Docker 이미지를 구축했고, 크롤링 시 에러 발생
  • 해당 이미지를 윈도우 환경에서는 사용해볼 수 없었음

Docker 이미지 빌드가 linux/arm64 환경에서 Airflow 2.3.0버전부터 가능해짐

하지만..이슈 발생

  1. linux/arm64 환경에선 Chrome 설치가 안 됨 (구글에서 미지원)
    • 이로 인해서 Selenium Webdriver를 이용하지 못함 -> 크롤링 못함
  2. M1 Mac으로 구축한 이미지는 linux/amd64(윈도우 등)에서 구동이 까다로움

해 볼 수 있는 시도

1. 플랫폼 상관없는 Browser를 사용

  • linux/arm64를 지원하는 browser를 사용
  • Selenium의 webdriver 리스트중에서는 Firefox만 해당

2. linux/amd64로 이미지 빌드 후 linux/arm64로 호환 가능하도록 설정

  • Docker에서 제공하는 기능 중 Docker Buildx 사용 (멀티 플랫폼 지원)
  • 윈도우로 Docker 이미지 구축 후, Mac에서 Buildx를 이용해 호환 가능하도록 설정
docker buildx build --platform=linux/amd64 -t ozoooooh/airflow:amd2arm .

docker-compose up

나의 경우) 결과적으로 airflow-scheduler, webserver가 구동되지 않음

3. Docker 이미지를 윈도우, Mac 따로 구축

4. Selenium 대신 Beautifulsoup으로 크롤링 대체

  • 나의 경우) 이 방법을 선택

0개의 댓글