بخش اول : مفاهیم پایه و شروع کار با ایرفلو
بخش دوم : مهارت‌های حرفه‌ای در طراحی جریان‌های کار
بخش سوم : طراحی و مدیریت جریان‌های کار پیچیده
بخش چهارم: کارگاه عملی و آشنایی با جایگزین‌های ایرفلو

سفارشی‌سازی ایمیج پایه ایرفلو

برای اجرای DAGهای حرفه‌ای ممکن است نیاز باشد که:

  1. کتابخانه‌ها و ابزارهای سیستمی (Linux packages) نصب شوند.
  2. تنظیمات محیطی مثل Timezone تغییر کند.
  3. کتابخانه‌های پایتونی مورد نیاز DAGها نصب شوند.

به جای نصب دستی در کانتینرهای Scheduler و Worker، بهترین روش بیلد یک ایمیج سفارشی است.


۱. نمونه Dockerfile سفارشی

# 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 برمی‌گردیم تا کلاستر با دسترسی استاندارد اجرا شود.
  • کتابخانه‌های Python که DAGها نیاز دارند (pandas, jdatetime, openpyxl, faker) با pip نصب می‌شوند.

۲. تغییر فایل Docker Compose

در فایل 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 ابتدا ایمیج را بیلد می‌کند و سپس کلاستر را بالا می‌آورد.
روش ۲: بیلد جداگانه و سپس بالا آوردن
docker compose build
docker compose up
  • مزیت: می‌توانید مرحله بیلد را جدا بررسی کنید و خطاهای نصب کتابخانه‌ها را قبل از اجرای کلاستر ببینید.

✅ جمع‌بندی

  • سفارشی‌سازی ایمیج پایه باعث می‌شود کتابخانه‌ها و تنظیمات سیستم به صورت مرکزی و استاندارد روی تمام کانتینرها اعمال شوند.
  • این روش بهتر و پایدارتر از نصب دستی در کانتینرهای Scheduler و Worker است.
  • زمان‌بندی‌ها و اجرای DAGها با تایم‌زون محلی درست عمل می‌کنند و همه‌ی وابستگی‌ها از ابتدا روی همه کانتینرها نصب هستند.
فروشگاه
جستجو
دوره ها

لطفا کلمات کلیدی را وارد کنید