气流如何在docker容器中安装Airflow.cfg
我正在docker容器中运行airflow,希望将我的气流如何在docker容器中安装Airflow.cfg,docker,docker-compose,airflow,mount,Docker,Docker Compose,Airflow,Mount,我正在docker容器中运行airflow,希望将我的airflow.cfg装入一个卷,这样我就可以快速编辑配置,而无需重建图像或直接在运行的容器中进行编辑。我能够将我的aiffort.cfg作为卷装载,并且我的aiffort Web服务器在启动时成功地从中读取配置。但是,在主机上编辑时,更改不会反映在docker容器中 docker容器内的findmnt-M afflow.cfg的输出返回: TARGET SOURCE
airflow.cfg
装入一个卷,这样我就可以快速编辑配置,而无需重建图像或直接在运行的容器中进行编辑。我能够将我的aiffort.cfg
作为卷装载,并且我的aiffort Web服务器在启动时成功地从中读取配置。但是,在主机上编辑时,更改不会反映在docker容器中
docker容器内的findmnt-M afflow.cfg
的输出返回:
TARGET SOURCE FSTYPE OPTIONS
/usr/local/airflow/airflow.cfg /dev/sda1[/host/path/airflow/airflow.cfg~//deleted] ext4 rw,relatim
从该输出看来,aiffort.cfg
继续指向未经编辑的原始版本的aiffort.cfg
。是否存在允许从主机更新配置文件的解决方法
我使用来自的LocalExecutor compose文件作为基础。我将其修改为在compose文件中装入
aiffort.cfg
,而不是在Dockerfile中复制它 我也遇到了同样的问题,我通过在webserver服务下的docker compose.yml
中添加以下行来解决它
-卷:
-./config/afflow.cfg:/usr/local/afflow/afflow.cfg
我的配置文件位于名为
config
的文件夹中,docker compose.yml文件位于该文件夹中。为了快速更改docker容器内的气流配置,有很多方法。您可以直接更改环境变量,而不是更改afflow.cfg。在docker容器中,直接在docker-compose.yml中进行修改非常容易。
您可以快速重新启动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
修改后的docker compose文件是什么样子的?当你把它放在那里时,它应该会工作,所以我猜docker compose文件中可能有错误。我在docker-compose.yml文件中也做了同样的事情。在
volumes:
下,它看起来像是:local/path/to/afflow.cfg:/docker/path/to/afflow/home/afflow.cfg
我以与您相同的方式指定了卷。您是否已验证主机上的更改是否反映在docker容器中?Myairflow.cfg
显示在容器内,我无法从主机更改它。