برای اجرای DAGهای حرفهای ممکن است نیاز باشد که:
به جای نصب دستی در کانتینرهای Scheduler و Worker، بهترین روش بیلد یک ایمیج سفارشی است.
# Start from the official Airflow image
FROM docker.arvancloud.ir/apache/airflow:3.0.6
# Switch to root to install system packages
USER root
# Install timezone data and configure Asia/Tehran
RUN apt-get update \
&& apt-get install -y --no-install-recommends tzdata \
&& ln -fs /usr/share/zoneinfo/Asia/Tehran /etc/localtime \
&& dpkg-reconfigure -f noninteractive tzdata \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Switch back to the airflow user (important!)
USER airflow
# Install additional Python dependencies
RUN pip install --no-cache-dir pandas jdatetime openpyxl faker
توضیحات:
USER root برای نصب بستههای سیستمی ضروری است.Asia/Tehran باعث میشود تسکها و زمانبندیها بر اساس ساعت محلی تهران باشد.airflow برمیگردیم تا کلاستر با دسترسی استاندارد اجرا شود.pandas, jdatetime, openpyxl, faker) با pip نصب میشوند.در فایل docker-compose.yaml بخش سرویس Airflow را به شکل زیر تغییر دهید:
airflow-webserver:
image: ${AIRFLOW_IMAGE_NAME:-docker.arvancloud.ir/apache/airflow:3.0.6}
build: . # <- این خط را از حالت کامنت خارج کنید
docker compose up، ایمیج سفارشی شما بیلد شود.docker compose up
docker compose build
docker compose up