Неисправный DAG: [/usr/local/airflow/dags/test.py] Нет модуля с именем 'boto3'. Как установить трубопровод в контейнер для воздушного потока? - PullRequest
0 голосов
/ 09 июля 2020

У меня следующая иерархия:

-airflow
  -dags
    -test.py
  -deployment
    -dockerfile
    -docker compose
  -scripts
  -requirements.txt

Файл test.py использует функции из каталога scripts. В некоторых скриптах есть внешние операторы импорта, например import boto3. Я предполагаю, что здесь проблема, потому что, когда я запускаю веб-сервер воздушного потока, я вижу, что все DAG, которые не требуют этих внешних пакетов, загружаются, но DAG, которые требуют их, не загружаются с помощью: Broken DAG: [/usr/local/airflow/dags/test.py] No module named 'boto3' Файл docker compose выглядит примерно так:

version: '3'
services:
  webserver:
    build: .

Я пытался добавить что-то вроде этого в свой dockerfile:

FROM puckel/docker-airflow:1.10.9

WORKDIR /airflow
COPY requirements.txt /airflow
RUN pip install -U pip && pip install -r requirements.txt

Но пакеты, похоже, не получают установлены. Как я могу установить свой requirements.txt всякий раз, когда я загружаю веб-сервер (docker compose up)?

1 Ответ

1 голос
/ 09 июля 2020

Может быть так же просто, как ...

WORKDIR /airflow
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

Возможно, вам также придется указать шаг сборки Docker. Я думаю docker-compose build . или docker-compose up --no-cache ... но это основано на слабой памяти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...