Я использую образ https://github.com/puckel/docker-airflow для запуска Airflow. Мне пришлось добавить pip install docker
, чтобы он поддерживал DockerOperator.
Все вроде бы нормально, но я не могу понять, как извлечь изображение из частного хранилища контейнеров Google Docker.
Я попытался добавить соединение в админ-секции типа подключения к облаку Google и запустить оператор Docker как.
t2 = DockerOperator(
task_id='docker_command',
image='eu.gcr.io/project/image',
api_version='2.3',
auto_remove=True,
command="/bin/sleep 30",
docker_url="unix://var/run/docker.sock",
network_mode="bridge",
docker_conn_id="google_con"
)
Но всегда получаю сообщение об ошибке ...
[2019-11-05 14: 12: 51,162] {{taskinstance.py:1047}} ОШИБКА - URL-адрес реестра Docker не предоставлен
Я также попробовал docker_conf_option
t2 = DockerOperator(
task_id='docker_command',
image='eu.gcr.io/project/image',
api_version='2.3',
auto_remove=True,
command="/bin/sleep 30",
docker_url="unix://var/run/docker.sock",
network_mode="bridge",
dockercfg_path="/usr/local/airflow/config.json",
)
Iполучить следующую ошибку:
[2019-11-06 13: 59: 40,522] {{docker_operator.py:194}} INFO - Запуск контейнера Docker из образа eu.gcr.io/project/image [2019-11-06 13: 59: 40,524] {{taskinstance.py:1047}} ОШИБКА - ('Соединение прервано.', FileNotFoundError (2, 'Нет такого файла или каталога'))
Я также попытался использовать только dockercfg_path = "config.json" и получил ту же ошибку.
Я не могу использовать Bash Operator, чтобы попробоватьвойти в Docker, поскольку он не распознает команду Docker ...
Что мне не хватает?
строка 1: docker: команда не найдена
t3 = BashOperator(
task_id='print_hello',
bash_command='docker login -u _json_key - p /usr/local/airflow/config.json eu.gcr.io'
)