Не удалось создать образ docker с помощью airflow2.0.0 с помощью breeze

#airflow

#воздушный поток

Вопрос:

Я получаю сообщение об ошибке ниже при попытке запустить следующую команду breeze build для создания airflow docker. Я клонирую master ветку git airflow для создания этого образа.

Команда сборки:

 ./breeze build-image --production-image --python 3.7 --install-airflow-version 2.0.0 --additional-extras=jdbc --additional-python-deps="pandas" --additional-runtime-apt-deps="default-jre-headless"
 

Ошибка:

     Step 83/94 : COPY scripts/docker/install*.sh /scripts/docker/
 ---> 8363694670bb
Step 84/94 : RUN if [[ ${INSTALL_FROM_PYPI} == "true" ]]; then         bash /scripts/docker/install_airflow.sh;     fi;     if [[ ${INSTALL_FROM_DOCKER_CONTEXT_FILES} == "true" ]]; then         bash /scripts/docker/install_from_docker_context_files.sh;     fi;     if [[ -n "${ADDITIONAL_PYTHON_DEPS}" ]]; then         bash /scripts/docker/install_additional_dependencies.sh;     fi;     find /root/.local/ -name '*.pyc' -print0 | xargs -0 rm -r || true ;     find /root/.local/ -type d -name '__pycache__' -print0 | xargs -0 rm -r || true
 ---> Running in 01f3dd4b7f57
  [[ true == true ]]
  bash /scripts/docker/install_airflow.sh

Installing all packages with constraints and upgrade if needed

ERROR: Invalid requirement: 'apache-airflow[async,amazon,celery,cncf.kubernetes,docker,dask,elasticsearch,ftp,grpc,hashicorp,http,ldap,google,microsoft.azure,mysql,postgres,redis,sendgrid,sftp,slack,ssh,statsd,virtualenv,jdbc]2.0.0'
WARNING: You are using pip version 20.2.4; however, version 21.0.1 is available.
You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
The command '/bin/bash -o pipefail -e -u -x -c if [[ ${INSTALL_FROM_PYPI} == "true" ]]; then         bash /scripts/docker/install_airflow.sh;     fi;     if [[ ${INSTALL_FROM_DOCKER_CONTEXT_FILES} == "true" ]]; then         bash /scripts/docker/install_from_docker_context_files.sh;     fi;     if [[ -n "${ADDITIONAL_PYTHON_DEPS}" ]]; then         bash /scripts/docker/install_additional_dependencies.sh;     fi;     find /root/.local/ -name '*.pyc' -print0 | xargs -0 rm -r || true ;     find /root/.local/ -type d -name '__pycache__' -print0 | xargs -0 rm -r || true' returned a non-zero code: 1

ERROR: The previous step completed with error. Please take a look at output above
 

Редактировать (1):

Я попробовал то же самое на экземпляре aws ec2 и получил ту же ошибку. Похоже, что-то сломано на стороне воздушного потока. Ниже приведен скриншот.

введите описание изображения здесь

Комментарии:

1. Это должно быть —install-airflow-version=»2.0.0″

Ответ №1:

Заменить

 --install-airflow-version 2.0.0
 

с

 --install-airflow-version="2.0.0"
 

Итак, команда:

 ./breeze build-image --production-image --python 3.7 --install-airflow-version "2.0.0" --additional-extras=jdbc --additional-python-deps="pandas" --additional-runtime-apt-deps="default-jre-headless"
 

Комментарии:

1. Я попробовал приведенную выше команду с двойными кавычками, но все равно получаю ту же ошибку. Я попытался следовать cmd ./breeze build-image --production-image --python 3.7 --install-airflow-version="2.0.0" и ./breeze build-image --production-image --python 3.7 --install-airflow-version "2.0.0" все равно получаю ту же ошибку.

2. для меня это работает нормально. Попробуйте извлечь последние изменения из master, возможно, в breeze были изменения, которые вы не извлекли.

3. хорошо. Позвольте мне попробовать клонировать репозиторий в новую папку непосредственно на моем компьютере с Windows. я не знаю, имеет ли это значение, но вышеуказанная ошибка возникла, когда я запустил сборку docker on on WSL (Windows subsystem for Linux) .

4. Я попробовал ту же команду на экземпляре ec2 (AWS), и я получаю ту же ошибку.

5. удалил все и снова выполнил чистую сборку, и это, наконец, сработало. Спасибо!!

Ответ №2:

Это сработало для меня:

 ./breeze build-image --production-image --python 3.7 --install-airflow-version "==2.0.0" --additional-extras=jdbc --additional-python-deps="pandas" --additional-runtime-apt-deps="default-jre-headless"
 

пришлось добавить «==».