Доброго времени суток.
Дано:
Сервер с Ubuntu 24.04.2 LTS
Airflow в Docker на данном сервере
К серверу подключен внешний HDD на 2Tb в NTFS
Что требуется:
Реализовать работу dag в Airflow, которая будет удалять n-ые файлы с данного HDD при запуске.
С чем столкнулся:
Проблема с удалением, а если быть точным, то airflow видит директории и файлы в ней, может их прочитать, но при применении shutil.rmtree(path_dir_file) падает с ошибкой что директория не найдена.
Я попробовал уже мне кажется все что смог нагуглить за 3 дня:
- Выдавал права на чтение и удаление с директорией. (сейчас HDD перемонтирован с общими правами)
- В Docker путь примонтирован тоже с условием для чтения и удаления.
- Пробовал удалять файлы с диска с ext4. Результат тот же.
- Пробовал в dag варианты с bash оператором
Уже даже не помню точно что еще делал. Но возможно по незнанию и по отсутствию опыта я пропустил какое нибудь простое решение.
Часть отвечающая за аирфлоу
airflow-webserver:
container_name: airflow_web
build: .
user: "1000:0"
environment:
UMASK: "000"
AIRFLOW__CORE__UMASK: "000"
AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CORE__EXECUTOR: LocalExecutor
volumes:
- /mnt/sdb1/file_load:/opt/airflow/files:rw,z,delegated,uid=1000,gid=0,cached
ports:
- "8081:8080"
command: |
bash -c "
airflow db migrate
airflow users create --username admin--password admin--firstname admin--lastname admin--role Admin --email admin@example.com || true
airflow webserver
"
Может есть какое то другое вообще решения задачи? Реализация не продовая, а просто локальная на своем домашнем сервере для себя, ну и за одно должна была быть практика с Airflow, но видимо не судьба.