ham*_*dog 7 mount docker docker-compose airflow
我正在 Docker 容器中运行气流,并希望将其挂载airflow.cfg
为卷,以便我可以快速编辑配置,而无需重建图像或直接在正在运行的容器中进行编辑。我能够将我的airflow.cfg
作为卷安装,并且我的气流网络服务器在启动时成功地从中读取配置。但是,当我在主机上编辑时,更改不会反映在 docker 容器内。
findmnt -M airflow.cfg
docker 容器内部的输出返回:
TARGET SOURCE FSTYPE OPTIONS
/usr/local/airflow/airflow.cfg /dev/sda1[/host/path/airflow/airflow.cfg~//deleted] ext4 rw,relatim
Run Code Online (Sandbox Code Playgroud)
从该输出看来,它似乎airflow.cfg
继续指向airflow.cfg
. 是否有任何解决方法可以允许从主机更新配置文件?
我使用puckel github 存储库中的 LocalExecutor 撰写文件作为基础。我将其修改为挂载airflow.cfg
在 compose 文件中,而不是将其复制到 Dockerfile 中。
Sav*_*zzo 17
我遇到了同样的问题,我通过将以下行添加到docker-compose.yml
网络服务器服务下解决了这个问题
- volumes:
- ./config/airflow.cfg:/opt/airflow/airflow.cfg
Run Code Online (Sandbox Code Playgroud)
我的配置文件位于名为config
文件所在的文件夹中docker-compose.yml
。
小智 10
为了快速更改 docker 容器内的气流配置,有很多方法。您可以直接更改环境变量,而不是更改airflow.cfg。在docker容器中,可以很容易地直接在docker-compose.yml中修改。您只需快速重新启动 docker-compose 即可。
以下是一些常见的配置变量:
- dag_folder : AIRFLOW__CORE__DAGS_FOLDER
- sql_alchemy_conn:AIRFLOW__CORE__SQL_ALCHEMY_CONN
- executor:AIRFLOW__CORE__EXECUTOR 所有配置变量可以在官方文档中找到
下面是我的气流 docker-compose 片段
webserver:
image: apache/airflow:1.10.12
depends_on:
- postgres
environment:
- AIRFLOW_HOME=/opt/airflow
- AIRFLOW__CORE_dags_folder=/opt/airflow/dags
- AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql://airflow:airflow@postgres/airflow
- AIRFLOW__CORE__EXECUTOR=LocalExecutor
- AIRFLOW__CORE__FERNET_KEY=#####youkey################
volumes:
- ./dags:/opt/airflow/dags
command: webserver
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19427 次 |
最近记录: |