Docker 中的气流初始化创建空目录

Airflow init in Docker creates empty directories

我正在从事的项目之一是使用气流。因此,我使用 airflow's 文档通过 docker compose 安装气流。

我希望 dags pluginlogs 目录与 docker-compose.yaml 不在同一目录中,所以我将它们放在另一个名为 airflow 并引用 docker-compose.yaml 中的目录,如下所示:

  volumes:
    - ./airflow/dags:/opt/airflow/dags
    - ./airflow/logs:/opt/airflow/logs
    - ./airflow/plugins:/opt/airflow/plugins

每当我 运行 docker-compose 时,airflow-init 服务会在与 docker-compose.yaml 相同的目录中再次创建这三个目录(我意识到它们在启动时出现 运行宁)。这不是什么大问题,因为我可以忽略它们。它们是空的,airflow 正确使用 airflow 目录中的目录。但我想知道是否有办法阻止创建这些目录。

感谢@EDG956 的帮助

airflow-init 服务中有一个 volumes 字段我完全错过了。您可以从

更改卷安装
volumes:
      - .:/sources

至:

volumes:
      - ./airflow/:/sources

或者更改在 /sources 卷中创建目录的 command 字段部分,如下所示:

        mkdir -p /sources/airflow/logs /sources/airflow/dags /sources/airflow/plugins
        chown -R "${AIRFLOW_UID}:0" /sources/airflow/{logs,dags,plugins}
        exec /entrypoint airflow version
    # yamllint enable rule:line-length
    environment:

尽管正如@EDG956 指出的那样,第一个解决方案似乎更有效。