Как запустить DockerOperator на Airflow? - PullRequest
1 голос
/ 11 мая 2019

Я настраиваю новый сервер воздушного потока, используя docker-compose и образ воздушного потока puckel / docker-airflow. BashOperators и PythonOperator работают хорошо, но когда я пытаюсь использовать DockerOperator, я получаю [/ usr / local / airflow / dags / XXXXXXX.py] Нет модуля с именем ' докер».

Как мне нужно изменить файл docker-compose, чтобы использовать docker внутри моего докера?

Я попытался найти сообщение об ошибке в Google, но ни одно из предложенных решений не сработало.

Вот docker-compose для WebServer, который я использую

webserver:
    image: puckel/docker-airflow:1.10.1
    build:
      context: https://github.com/puckel/docker-airflow.git#1.10.1
      dockerfile: Dockerfile
      args:
        AIRFLOW_DEPS: gcp_api,s3,docker        
    restart: always
    depends_on:
      - postgres
    environment:
      - LOAD_EX=n
      - EXECUTOR=Local
      - FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
    volumes:
      - ./LOCALPATHTODAGS/dags:/usr/local/airflow/dags
    ports:
      - "8080:8080"
    command: webserver

Моя конечная цель - иметь возможность запускать док-контейнер локального изображения из моих трубопроводов воздушного потока.

1 Ответ

1 голос
/ 12 мая 2019

Существует два метода, которые вы можете использовать:

  1. Добавить before_script к вашему текущему составлению docker:
webserver:
   (...)
   before_script:
   - pip install docker 
Создайте Dockerfile, который использует тот из puckel, и установите там необходимый пакет.
...