修改Airflow源码后构建Docker镜像并部署到容器的流程咨询
Airflow自定义镜像构建与部署全流程(Windows Docker Desktop环境)
前置说明:已默认开启Docker Desktop WSL2后端,所有操作推荐在WSL终端内执行,避免Windows系统兼容问题
1 克隆Airflow源码到本地
执行以下命令克隆官方源码,切换到你需要的稳定版本(示例为2.8.0版本,可自行替换为目标版本号):
git clone https://github.com/apache/airflow.git cd airflow git checkout tags/2.8.0
2 自定义UI修改(以添加公司logo为例)
Airflow Web UI的静态资源存放在airflow/www/static/目录下:
- 找到默认logo文件
airflow-logo.svg,将你的公司logo重命名为相同文件名直接替换即可 - 如需修改页面标题、其他UI样式,可同步修改
airflow/www/templates/下的对应模板文件,修改完成后保存
3 编译构建自定义Docker镜像
在Airflow源码根目录执行镜像构建命令,可根据需求添加构建参数(比如安装额外依赖、provider包等):
# 构建自定义镜像,自行替换镜像名和版本号 docker build . -t mycorp-airflow:2.8.0
构建完成后执行docker images确认镜像已生成,可先本地启动容器测试自定义修改是否生效。
4 推送镜像到Azure容器注册表(ACR)
首先从Azure门户获取你的ACR访问凭证(登录地址、用户名、密码),按以下步骤操作:
- 登录ACR,替换示例地址为你的ACR实际地址
docker login your-acr-name.azurecr.io
按提示输入ACR用户名和密码完成登录
2. 给本地镜像打ACR标签
docker tag mycorp-airflow:2.8.0 your-acr-name.azurecr.io/mycorp-airflow:2.8.0
- 推送镜像到ACR
docker push your-acr-name.azurecr.io/mycorp-airflow:2.8.0
推送完成后可在Azure ACR控制台确认镜像存在。
5 启动Airflow服务
- 下载官方docker-compose.yaml文件,将文件中所有默认的
apache/airflow:xxx镜像地址替换为你推送到ACR的自定义镜像地址 - 在compose文件所在目录创建必要的本地目录,避免权限问题:
mkdir -p ./dags ./logs ./plugins ./config echo -e "AIRFLOW_UID=$(id -u)" > .env
- 初始化Airflow元数据库
docker compose up airflow-init
- 后台启动所有Airflow服务
docker compose up -d
等待3-5分钟服务启动完成,访问localhost:8080即可看到已经替换了公司logo的Airflow UI,默认登录账号密码均为airflow。
注意事项
- 不要使用Airflow主干开发分支构建镜像,必须切换到正式发布的稳定版本标签,避免未知兼容性问题
- 每次修改源码后都需要重新构建、推送镜像,再重启compose服务,修改才会生效
- Windows环境下不要用CMD/PowerShell执行上述Linux命令,统一在WSL终端操作,避免换行符、权限相关异常
内容的提问来源于stack exchange,提问作者techrhl
相关产品推荐
相关产品推荐

