Может ли поток воздуха, работающий в контейнере Docker, получить доступ к локальному файлу?

#docker #airflow

Вопрос:

Я новичок в том, что касается как воздушного потока, так и Докера; чтобы все усложнить, я использую Астронома, а чтобы все было еще хуже, я запускаю Воздушный поток в окнах. (Не в подсистеме Unix — не удалось установить Docker в Ubuntu 20.4). «Запуск astro dev» прерывается с ошибкой, но на рабочем столе Docker я вижу и могу запустить 3 контейнера, связанных с воздушным потоком. Они прекрасно видят мои DAG, но мои DAG не видят локальную файловую систему. Таким образом, неизбежно ли использование комбинации Airflow Docker? (Похоже, это большой недостаток; можно использовать файл только в облаке).

Ответ №1:

В общем случае вы можете объявить том во время выполнения образа в Docker, используя -v переключатель с вашей docker run командой для подключения локальной папки на вашем хосте к точке монтирования в вашем контейнере, и вы можете получить доступ к этой точке изнутри контейнера. Если вы продолжите использовать docker-compose up для организации своих контейнеров, вы можете указать тома в docker-compose.yml файле для своих контейнеров, который настраивает тома для запущенных контейнеров.

В вашем случае в документах Astronomer здесь предлагается создать пользовательскую директиву в файле Astronomer docker-compose.override.yml для монтирования томов в контейнерах воздушного потока, созданных как часть ваших astro команд для вашего стека, которые затем должны быть видны из ваших DAG.