通过Dockerfile部署airflow容器
部署airflow容器讲究轻量化
分三个模块
1、部署airflow
2、安装rest-api插件
3、设置airflow的时钟与系统时钟同步
先拉取一个airflow的基础镜像
rest-api插件的安装包下载到本地服务器,详情可以参考
https://www.cnblogs.com/braveym/p/12069514.html
airflow的系统时间与宿主机的同步具体需要修改的内容可以参考
https://www.cnblogs.com/braveym/p/12664808.html
其中Shanghai这个文件是宿主机的上海时区文件
编辑Dockerfile文件
FROM puckel/docker-airflow RUN nohup airflow webserver>>$AIRFLOW_HOME/airflow-webserver.log 2>&1 & RUN nohup airflow scheduler>>$AIRFLOW_HOME/airflow-scheduler.log 2>&1 & #配置rest-api插件 RUN pip install flask_jwt_extended -i http://pypi.douban.com/simple --trusted-host pypi.douban.com RUN cd /usr/local/airflow RUN mkdir -p plugins/templates/rest_api_plugin COPY airflow-rest-api-plugin-1.0.3/plugins/rest_api_plugin.py /usr/local/airflow/plugins COPY airflow-rest-api-plugin-1.0.3/plugins/templates/rest_api_plugin/index.html /usr/local/airflow/plugins/templates/rest_api_plugin #配置AirFlow系统时钟与宿主机同步 COPY timezone.py /usr/local/lib/python3.7/site-packages/airflow/utils/ COPY sqlalchemy.py /usr/local/lib/python3.7/site-packages/airflow/utils/ copy master.html /usr/local/lib/python3.7/site-packages/airflow/www/templates/admin/ RUN cd /etc #RUN mv localtime localtime_bak #RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime COPY Shanghai /etc/localtime
在Dockerfile文件的目录下执行,创建一个airflow的镜像
sudo docker build -t="airflow" .
启动一个airflow的容器
docker run --net=bridge --name AirFlow1 -e MYSQL_IP_PORT="192.168.189.140:3306/airflow" -e MYSQL_USERNAME="root" -e MYSQL_PASSWORD="Admin123*" -v /usr/local/airflow/dags:/usr/local/airflow/dags -v /usr/local/airflow/airflowSql:/usr/local/airflow/airflowSql -v /usr/local/airflow/airflow.cfg:/usr/local/airflow/airflow.cfg -id -p 8082:8080 --privileged=true airflow
打开浏览器
由于我这里截图需要点时间,所以看到的是不同的时间,时间上是一样的