如何在我的 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