气流如何在docker容器中安装Airflow.cfg

气流如何在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

我正在docker容器中运行airflow,希望将我的
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

以下是一些常见的配置变量:

  • dag_文件夹:气流__核心____dag_文件夹
  • sql炼金术控制:气流控制核心控制sql炼金术控制
  • executor:AIRFLOW\uuuuu CORE\uuuuu executor可在以下位置找到所有配置变量
  • 下面是我的气流docker组合剪

     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容器中?My
    airflow.cfg
    显示在容器内,我无法从主机更改它。