Airflow 如何在 docker 容器中安装 airflow.cfg
Airflow how to mount airflow.cfg in docker container
我 运行 airflow 在 docker 容器中,我想将我的 airflow.cfg
挂载为一个卷,这样我就可以快速编辑配置,而无需重建图像或直接编辑运行 容器。我能够将我的 airflow.cfg
安装为一个卷,并且我的气流网络服务器在启动时成功地从中读取了配置。但是,当我在主机上编辑时,更改不会反映在 docker 容器内。
docker 容器内 findmnt -M airflow.cfg
的输出 returns:
TARGET SOURCE FSTYPE OPTIONS
/usr/local/airflow/airflow.cfg /dev/sda1[/host/path/airflow/airflow.cfg~//deleted] ext4 rw,relatim
从该输出看来 airflow.cfg
继续指向 airflow.cfg
的原始未编辑版本。是否有任何解决方法允许从主机更新配置文件?
我正在使用 puckel github repo 中的 LocalExecutor 组合文件作为基础。我将其修改为在撰写文件中挂载 airflow.cfg
,而不是将其复制到 Dockerfile 中。
我遇到了同样的问题,我通过将以下行添加到 docker-compose.yml
,在网络服务器服务
下解决了这个问题
- volumes:
- ./config/airflow.cfg:/usr/local/airflow/airflow.cfg
我的配置文件位于 config
文件夹中,docker-compose.yml
文件所在的文件夹中。
为了快速更改 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 all configuration variable could be found at official doc
下面是我的气流 docker-compose snips
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
我 运行 airflow 在 docker 容器中,我想将我的 airflow.cfg
挂载为一个卷,这样我就可以快速编辑配置,而无需重建图像或直接编辑运行 容器。我能够将我的 airflow.cfg
安装为一个卷,并且我的气流网络服务器在启动时成功地从中读取了配置。但是,当我在主机上编辑时,更改不会反映在 docker 容器内。
docker 容器内 findmnt -M airflow.cfg
的输出 returns:
TARGET SOURCE FSTYPE OPTIONS
/usr/local/airflow/airflow.cfg /dev/sda1[/host/path/airflow/airflow.cfg~//deleted] ext4 rw,relatim
从该输出看来 airflow.cfg
继续指向 airflow.cfg
的原始未编辑版本。是否有任何解决方法允许从主机更新配置文件?
我正在使用 puckel github repo 中的 LocalExecutor 组合文件作为基础。我将其修改为在撰写文件中挂载 airflow.cfg
,而不是将其复制到 Dockerfile 中。
我遇到了同样的问题,我通过将以下行添加到 docker-compose.yml
,在网络服务器服务
- volumes:
- ./config/airflow.cfg:/usr/local/airflow/airflow.cfg
我的配置文件位于 config
文件夹中,docker-compose.yml
文件所在的文件夹中。
为了快速更改 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 all configuration variable could be found at official doc
下面是我的气流 docker-compose snips
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