Đầu tiên các bạn tải file đính kèm ở trên về giải nén ra & cài sẵn docker compose nhé
Bước 1: Các bạn nên chạy postgresql riêng để dùng nhiều mục đích (nếu chưa có) với docker-compose-postgresql.yaml rồi tạo 1 database tên là airflow trên postgresql
docker compose -f docker-compose-postgresql.yaml up -d
Bước 2: Sửa file .env (nếu các bạn muốn tùy chỉnh lại các thông số theo mong muốn):
AIRFLOW_IMAGE_NAME=apache/airflow:slim-2.9.3
AIRFLOW_VERSION=2.10.5
AIRFLOW_UID=1000
# Các thư mục dags, logs, config, plugins sẽ mount ra thư mục này để tiện dev/test > bạn sửa lại
AIRFLOW_PROJ_DIR=~/airflow
# Kết nối tới posgresql, Bạn sửa lại user/pass nếu của bạn khác (pgadmin:123)
AIRFLOW__CELERY__RESULT_BACKEND=db+postgresql://pgadmin:123@postgres:5432/airflow
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://pgadmin:123@postgres:5432/airflow
#User truy cập airflow tại localhost:8122
_AIRFLOW_WWW_USER_USERNAME=airflow
_AIRFLOW_WWW_USER_PASSWORD=af123
Bước 3: Chỉnh sửa các thư viện cần cài trong requirements.txt theo project bạn cần, VD như project mình cần clickhouse client & oracle:
clickhouse-connect
airflow-clickhouse-plugin
# Core dependencies
--only-binary :all: pyarrow
dag-factory>=0.18.0,<0.28.0
#dag-factory>=0.11.3
apache-airflow-providers-common-sql>=1.20.0
oracledb>=2.0.0
apache-airflow-providers-oracle[common.sql]
sqlalchemy>=1.4.0
apache-airflow-providers-cncf-kubernetes>=7.4.0
Bước 4: Tiếp đó chạy docker-compose.yaml của airflow :
docker compose -f docker-compose-airflow.yaml up -d

File docker-compose-airflow.yaml này cơ bản là đã lược bớt airflow-worker, flower và redis so với bản full dùng trong product để cho nhẹ hơn dùng cho dev/test local
Bước 5: Truy cập http://localhost:8122/ với user airflow và mật khẩu af123 đã thiết lập ở Bước 2
(port 8122 để tránh trùng port 8080 của các service khác, bạn có thể sửa trong docker-compose-airflow.yaml)

Bước 6:
- Mở thư mục đã map vào container (AIRFLOW_PROJ_DIR) ở Bước 2 và thêm thử dags:

- Load lại airflow và bấm chạy thử dags:

- Dags đã chạy và success:

Bài viết này dựa trên nguồn sau, tuy nhiên đã được sửa lại file để chạy được
(airflow.Dockerfile trong bài không hoạt động nên docker-compose.yml không dùng được)
