在容器化环境中,软件以镜像的形式交付用户。Airflow官方提供的镜像已经包含Airflow的核心包和少量的扩展包。如果官方的镜像已经满足了要求,建议直接使用。如果官方的镜像不能满足要求,那么可以基于官方的镜像进行扩展,定制自己的Airflow镜像。
下面的Dockerfile基于官方2.2.4版本的Airflow镜像,使用APT安装vim软件:
FROM apache/airflow:2.2.4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
vim \
&& apt-get autoremove -yqq --purge \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER airflow
Airflow的官方镜像中默认的用户是airflow,但是因为APT操作需要root权限,所以必须在Dockerfile中先切换成root用户,最后再切换回airflow用户。
下面的Dockerfile基于官方2.2.4版本的Airflow镜像,使用PIP安装lxml软件:
FROM apache/airflow:2.2.4
RUN pip install --no-cache-dir lxml
由于PIP命令是不需要root权限的,因此这个示例不必在Dockerfile中切换用户。