如何在我的 docker 图像 apache/airflow:2.1.4 上安装 gecko 驱动程序和 firefox
How do I install gecko driver and firefox on my docker image apache/airflow:2.1.4
我正尝试在我的一项气流任务中使用 Selenium。我在 apache/airflow:2.1.4
docker 图像上有气流 运行。
当我在 airflow 任务中使用 selenium 时出现以下错误(因为我缺少 firefox)
FileNotFoundError: [Errno 2] No such file or directory: 'firefox': 'firefox'
如何将 geckodriver 和 firefox 添加到气流图像中?
我 docker-compose
为气流构建了以下 Dockerfile
,
FROM apache/airflow:2.1.4
WORKDIR /python_dependencies
COPY ./requirements.txt .
RUN pip3 install -r requirements.txt
apache/airflow:2.1.4
是基于debian的,所以你只需要使用apt-get install firefox-esr
获取firefox command
,同时从geckodriver github下载预构建的二进制文件来安装geckodriver。
Dockerfile:
FROM apache/airflow:2.1.4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates curl firefox-esr \
&& rm -fr /var/lib/apt/lists/* \
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz | tar xz -C /usr/local/bin \
&& apt-get purge -y ca-certificates curl
USER airflow
验证:
$ docker build -t abc:1 .
$ docker run --rm -it --entrypoint=which abc:1 firefox
/usr/bin/firefox
$ docker run --rm -it --entrypoint=which abc:1 geckodriver
/usr/local/bin/geckodriver
我正尝试在我的一项气流任务中使用 Selenium。我在 apache/airflow:2.1.4
docker 图像上有气流 运行。
当我在 airflow 任务中使用 selenium 时出现以下错误(因为我缺少 firefox)
FileNotFoundError: [Errno 2] No such file or directory: 'firefox': 'firefox'
如何将 geckodriver 和 firefox 添加到气流图像中?
我 docker-compose
为气流构建了以下 Dockerfile
,
FROM apache/airflow:2.1.4
WORKDIR /python_dependencies
COPY ./requirements.txt .
RUN pip3 install -r requirements.txt
apache/airflow:2.1.4
是基于debian的,所以你只需要使用apt-get install firefox-esr
获取firefox command
,同时从geckodriver github下载预构建的二进制文件来安装geckodriver。
Dockerfile:
FROM apache/airflow:2.1.4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates curl firefox-esr \
&& rm -fr /var/lib/apt/lists/* \
&& curl -L https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz | tar xz -C /usr/local/bin \
&& apt-get purge -y ca-certificates curl
USER airflow
验证:
$ docker build -t abc:1 .
$ docker run --rm -it --entrypoint=which abc:1 firefox
/usr/bin/firefox
$ docker run --rm -it --entrypoint=which abc:1 geckodriver
/usr/local/bin/geckodriver