很多答案,没有人提到容器。从我的观点来看,docker中的气流要容易得多,尤其是对于开发而言。这可能是支持气流码头集装箱的最佳项目。
这是一个 docker-compose 的示例,您可以作为示例:
version: '2'
services:
postgresql:
image: bitnami/postgresql:latest
volumes:
- postgresql_data:/bitnami/postgresql
env_file:
- .env
ports:
- 5432:5432
redis:
image: bitnami/redis:latest
env_file:
- .env
volumes:
- redis_data:/bitnami
airflow-worker:
image: bitnami/airflow-worker:latest
env_file:
- .env
volumes:
- ./dags:/opt/bitnami/airflow/dags
- ./plugins:/opt/bitnami/airflow/plugins
airflow-scheduler:
image: bitnami/airflow-scheduler:latest
depends_on:
- redis
env_file:
- .env
volumes:
- ./dags:/opt/bitnami/airflow/dags
- ./plugins:/opt/bitnami/airflow/plugins
airflow:
image: bitnami/airflow:latest
depends_on:
- postgresql
env_file:
- .env
ports:
- 8080:8080
volumes:
- ./dags:/opt/bitnami/airflow/dags
- ./plugins:/opt/bitnami/airflow/plugins
volumes:
postgresql_data:
driver: local
redis_data:
driver: local
以及相应的 .env文件:
AIRFLOW_EXECUTOR=CeleryExecutor
AIRFLOW_PASSWORD=admin
AIRFLOW_USERNAME=admin
LOAD_EXAMPLES=no
ALLOW_EMPTY_PASSWORD=yes
AIRFLOW__CORE__FERNET_KEY=46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho=
AIRFLOW__CORE__DAG_DISCOVERY_SAFE_MODE=false
POSTGRESQL_DATABASE=bitnami_airflow
POSTGRESQL_USERNAME=bn_airflow
POSTGRESQL_PASSWORD=bitnami1
关于plugins目录,它是保留目录,您可以在其中放置自定义脚本/lib 等,并且气流会自动拾取它们。