상황
Airflow를 통해 Selenium을 이용한 크롤링을 주기적으로 하고, 윈도우와 맥에서 구동 가능하도록 Docker를 이용하자!
- M2 Mac 환경에서 Docker 이미지를 구축했고, 크롤링 시 에러 발생
- 해당 이미지를 윈도우 환경에서는 사용해볼 수 없었음
왜
Docker 이미지 빌드가 linux/arm64 환경에서 Airflow 2.3.0버전부터 가능해짐
하지만..이슈 발생
- linux/arm64 환경에선 Chrome 설치가 안 됨 (구글에서 미지원)
- 이로 인해서 Selenium Webdriver를 이용하지 못함 -> 크롤링 못함
- 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으로 크롤링 대체