从源码构建Airflow Docker镜像部署Azure过程中多步骤报错求助
构建时约束文件404错误解决方案
该错误核心原因是你克隆的main分支为Airflow开发版本,2.2.0.dev0属于未正式发布的预编译版本,官方不会为开发版本上传公开约束文件,同时Python3.6已经在后续Airflow版本中停止官方支持,对应版本约束文件已下线。解决方法如下:
- 切换到Airflow正式发布的稳定版本标签进行构建,不要直接使用main分支开发版用于部署:
执行命令切换到指定稳定版:git checkout v2.8.3 - 构建镜像时显式指定Python版本参数,避免自动匹配到已停止支持的旧Python版本:
构建命令参考:docker build . -f Dockerfile --build-arg PYTHON_BASE_IMAGE=python:3.8-slim --tag airflow-image-20210913:0.0.1
安装完成后airflow命令异常解决方案
分两种场景处理:
场景1:在容器内调用airflow命令异常
- 容器默认如果使用root用户运行,会触发Airflow权限校验错误,运行时指定Airflow默认用户ID即可:
命令参考:docker run -u 50000 airflow-image-20210913:0.0.1 airflow version - 如果挂载了本地WSL2目录到容器内,需要给本地dags、logs、plugins目录配置对应权限:
本地执行命令:sudo chown -R 50000:0 ./dags ./logs ./plugins
场景2:在WSL2本地环境直接调用airflow命令异常
- 先确认Python3.8虚拟环境已正确激活,执行
pip check检查是否存在依赖冲突 - 如果存在依赖冲突,使用对应版本的官方约束文件重装Airflow:
命令参考:pip install "apache-airflow==2.8.3" --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.8.3/constraints-3.8.txt - 若报错提示缺少系统依赖,执行命令安装所需系统包:
sudo apt update && sudo apt install -y libpq-dev gcc python3-dev
内容的提问来源于stack exchange,提问作者techrhl
相关产品推荐
相关产品推荐

