代码解析
下列代码是一个用于构建 Apache Airflow 2.9.3 Docker 镜像的 Dockerfile,基于 Python 3.9 版本。以下是对每个命令和步骤的详细解释:
-
基础镜像选择:
FROM python:3.9-slim
这行指定 Docker 使用
python:3.9-slim
作为基础镜像。python:3.9-slim
是一个较小体积的镜像,包含了 Python 3.9 的运行环境,适合用作构建更具体应用的基础。 -
环境变量设置:
ENV AIRFLOW_VERSION=2.9.3 ENV AIRFLOW_HOME=/opt/airflow ENV PYTHONUNBUFFERED=1 ENV PIP_NO_CACHE_DIR=1
AIRFLOW_VERSION
设置 Airflow 的版本号为 2.9.3。AIRFLOW_HOME
设置 Airflow 的工作目录为/opt/airflow
。PYTHONUNBUFFERED
设置为1
以确保 Python 输出是即时的,并且不会被缓冲。PIP_NO_CACHE_DIR
设置为1
禁用 pip 缓存,这有助于减小 Docker 镜像的体积。
-
安装系统依赖和 Python 包:
RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libssl-dev \ libsasl2-dev \ libldap2-dev \ default-libmysqlclient-dev \ python3-distutils \ python3-setuptools \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
这一步使用
apt-get
更新包列表并安装一些必要的系统依赖和 Python 库。这些依赖通常是编译和运行特定 Python 模块(如数据库连接等)所必须的。 -
安装 Apache Airflow:
RUN pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-3.9.txt"
这里通过 pip 安装指定版本的 Apache Airflow,并使用一个版本约束文件以确保所有依赖