#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"
пришлось добавить «==».