使用docker-compose部署Airflow时如何安装依赖包且无需重建镜像?
免重建Airflow Docker镜像加载requirements.txt解决方案
实现逻辑
无需重新构建Airflow镜像,通过挂载本地目录+环境变量配置,让容器启动时自动安装依赖,同时本地PyCharm可直接识别同一份依赖文件。
操作步骤
1. 修改docker-compose.yaml配置
找到yaml中通用Airflow配置块(通常为x-airflow-common),做如下修改:
- 在
environment节点下新增3条环境变量:_PIP_ADDITIONAL_REQUIREMENTS: "-r /opt/airflow/requirements.txt" PIP_TARGET: /opt/airflow/custom-packages PYTHONPATH: /opt/airflow/custom-packages:${PYTHONPATH} - 在
volumes节点下新增2条挂载规则:- ./requirements.txt:/opt/airflow/requirements.txt - ./custom-packages:/opt/airflow/custom-packages
上述配置会让Airflow容器每次启动时,自动读取本地的requirements.txt安装依赖到本地./custom-packages目录,容器内Python会优先读取该目录下的依赖包。
2. 配置PyCharm识别依赖
任选一种方式即可:
- 方式一:在PyCharm项目面板中右键点击
custom-packages文件夹,选择「Mark Directory as -> Sources Root」,PyCharm会自动索引该目录下的所有依赖包 - 方式二:在PyCharm绑定的项目解释器中执行命令:
pip install -r requirements.txt -t ./custom-packages
3. 重启Airflow服务
执行以下命令重启服务生效:
docker-compose down -v docker-compose up -d
注意事项
- 如果使用CeleryExecutor等多节点执行器,需要确保scheduler、worker、webserver所有Airflow相关服务都继承了上述修改的通用配置
- 后续新增依赖只需要修改本地
requirements.txt,重启Airflow服务即可自动安装,无需重建镜像
内容的提问来源于stack exchange,提问作者Makrushin Evgenii
相关产品推荐
相关产品推荐

