Docker 中的气流初始化创建空目录
Airflow init in Docker creates empty directories
我正在从事的项目之一是使用气流。因此,我使用 airflow's 文档通过 docker compose 安装气流。
我希望 dags
plugin
和 logs
目录与 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 指出的那样,第一个解决方案似乎更有效。
我正在从事的项目之一是使用气流。因此,我使用 airflow's 文档通过 docker compose 安装气流。
我希望 dags
plugin
和 logs
目录与 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 指出的那样,第一个解决方案似乎更有效。