#azure-devops #azure-web-app-service #azure-pipelines-release-pipeline #azure-app-service-plans
#azure-devops #azure-web-app-service #azure-pipelines-release-pipeline #планы azure-app-service-планы
Вопрос:
Введение
Привет, я месяцами развертываю приложение на Python-Flask в службе приложений Azure.
Сегодня я получил следующее сообщение об ошибке при запуске моего конвейера, работающего на Microsoft DevOps:
ОШИБКА: не удалось установить пакеты из-за ошибки среды: [Ошибка 28] На устройстве не осталось места: ‘/tmp/8d876019152941b/antenv/lib/python3.8/site-packages/numpy-1.18.1.dist-info’
Я получил ошибку в других приложениях, хранящихся на том же плане. Все мои приложения больше не могут быть обновлены
что я пробовал
Я создал новое приложение и развернул тот же код. Я получил ту же ошибку :
Очистка временных папок из предыдущих zip-развертываний и извлечение отправленного zip-файла /tmp/zipdeploy/REDACTED.zip (246,59 МБ) в /tmp/zipdeploy/извлеченный
На устройстве не осталось свободного места
## [ошибка] Не удалось развернуть веб-пакет в службе приложений.
В плане указано, что моя пороговая квота составляет 10 ГБ и что я использую 936 МБ или 9% от моей квоты!
Использование ‘df-h’ с помощью Kundu Bash
> Filesystem Size Used Avail Use% Mounted on
> none 29G 27G 0 100% /
> tmpfs 64M 0 64M 0% /dev
> tmpfs 953M 0 953M 0% /sys/fs/cgroup
> shm 62M 0 62M 0% /dev/shm
> //REDACTED/ 1000G 9.7G 991G 1% /home
> /dev/sda1 27G 8.6G 18G 34% /appsvctmp
> /dev/loop6p1 29G 27G 0 100% /etc/hosts
> udev 920M 0 920M 0% /dev/tty
> tmpfs 953M 0 953M 0% /proc/acpi
> tmpfs 953M 0 953M 0% /proc/scsi
> tmpfs 953M 0 953M 0% /sys/firmware
Вопрос
Что я должен сделать, чтобы снова работать?
Я не могу получить доступ к каталогу / dev/ loop6p1 (что это?) и удалить файлы
журналы конвейеров Azure
> 2020-10-21 ##[section]Starting: Deploy Azure Web App : www.alt-f1.be
> 2020-10-21 ==============================================================================
> 2020-10-21 Task : Azure Web App
> 2020-10-21 Description : Deploy an Azure Web App for Linux or Windows
> 2020-10-21 Version : 1.168.3
> 2020-10-21 Author : Microsoft Corporation
> 2020-10-21 Help : https://aka.ms/azurewebapptroubleshooting
> 2020-10-21 ==============================================================================
> 2020-10-21 Got service connection details for Azure App Service:'www.alt-f1.be'
> 2020-10-21 Package deployment using ZIP Deploy initiated.
> 2020-10-21 Updating submodules.
> 2020-10-21 Preparing deployment for commit id '1ea14e5515'.
> 2020-10-21 Repository path is /tmp/zipdeploy/extracted
> 2020-10-21 Running oryx build...
> 2020-10-21 Command: oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform python --platform-version 3.8 -i /tmp/8d876019152941b -p compress_virtualenv=tar-gz -p virtualenv_name=antenv --log-file /tmp/build-debug.log
> 2020-10-21 Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
> 2020-10-21 You can report issues at https://github.com/Microsoft/Oryx/issues
> 2020-10-21
> 2020-10-21 Oryx Version: 0.2.20200917.1, Commit: 59deb778658a124cb74ea8e2c8f39fa87abcc9d9, ReleaseTagName: 20200917.1
> 2020-10-21
> 2020-10-21 Build Operation ID: |18pOsx/PQ8Y=.d0555319_
> 2020-10-21 Repository Commit : 1ea14e5515974a80bdcdc28eac749d4f
> 2020-10-21
> 2020-10-21 Detecting platforms...
> 2020-10-21 Detected following platforms:
> 2020-10-21 nodejs: 12.18.3
> 2020-10-21 python: 3.8.5
> 2020-10-21
> 2020-10-21 Using intermediate directory '/tmp/8d876019152941b'.
> 2020-10-21
> 2020-10-21 Copying files to the intermediate directory...
> 2020-10-21 Done in 6 sec(s).
> 2020-10-21
> 2020-10-21 Source directory : /tmp/8d876019152941b
> 2020-10-21 Destination directory: /home/site/wwwroot
> 2020-10-21
> 2020-10-21 Python Version: /opt/python/3.8.5/bin/python3.8
> 2020-10-21 Python Virtual Environment: antenv
> 2020-10-21 Creating virtual environment...
> 2020-10-21 Activating virtual environment...
> 2020-10-21 Running pip install...
> 2020-10-21 [20:41:33 0000] Collecting altf1be_helpers==2.1.4
> 2020-10-21 [20:41:33 0000] Downloading altf1be_helpers-2.1.4-py2.py3-none-any.whl (14 kB)
...
> 2020-10-21 [20:44:13 0000] Installing collected packages: numpy, six, python-dateutil, pytz, pandas, certifi, urllib3, idna, chardet, requests, isodate, oauthlib, requests-oauthlib, msrest, azure-core, pycparser, cffi, cryptography, azure-storage-blob, Unidecode, altf1be-helpers, attrs, Babel, pyparsing, packaging, > webencodings, bleach, cachelib, click, dash-core-components, dash-html-components, dash-table, MarkupSafe, Jinja2, Werkzeug, itsdangerous, Flask, brotli, Flask-Compress, retrying, plotly, dash-renderer, future, dash, docopt, docutils, Flask-Babel, Flask-Session, SQLAlchemy, Flask-SQLAlchemy, gunicorn, zipp, importlib-metadata, jeepney, > SecretStorage, keyring, more-itertools, yarg, pipreqs, pkginfo, pluggy, py, Pygments, pyodbc, pyopenssl, wcwidth, pytest, python-dotenv, readme-renderer, requests-toolbelt, starkbank-ecdsa, python-http-client, sendgrid, tqdm, twine, WTForms, xlrd, XlsxWriter
> 2020-10-21 ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device: '/tmp/8d876019152941b/antenv/lib/python3.8/site-packages/numpy-1.18.1.dist-info'
> 2020-10-21
> 2020-10-21 WARNING: You are using pip version 20.1.1; however, version 20.2.4 is available.
> 2020-10-21 You should consider upgrading via the '/tmp/8d876019152941b/antenv/bin/python -m pip install --upgrade pip' command.
> 2020-10-21 ERROR: Could not install packages due to an EnvironmentError: [Errno 28] No space left on device: '/tmp/8d876019152941b/antenv/lib/python3.8/site-packages/numpy-1.18.1.dist-info'nnWARNING: You are using pip version 20.1.1; however, version 20.2.4 is available.nYou should consider upgrading via the '/tmp/> 8d876019152941b/antenv/bin/python -m pip install --upgrade pip' command.n/opt/Kudu/Scripts/starter.sh oryx build /tmp/zipdeploy/extracted -o /home/site/wwwroot --platform python --platform-version 3.8 -i /tmp/8d876019152941b -p compress_virtualenv=tar-gz -p virtualenv_name=antenv --log-file /tmp/build-debug.log
> 2020-10-21 ##[error]Failed to deploy web package to App Service.
> 2020-10-21 ##[error]To debug further please check Kudu stack trace URL : https://$www.alt-f1.be:***@www.alt-f1.be.scm.azurewebsites.net/api/vfs/LogFiles/kudu/trace
> 2020-10-21 ##[error]Error: Package deployment using ZIP Deploy failed. Refer logs for more details.
> 2020-10-21 Successfully updated deployment History at https://www.alt-f1.be.scm.azurewebsites.net/api/deployments/2571603313079929
> 2020-10-21 App Service Application URL: https://www.alt-f1.be.azurewebsites.net
> 2020-10-21 ##[section]Finishing: Deploy Azure Web App : www.alt-f1.be
Заключение
Мой план полностью заблокирован. Больше невозможно развернуть какую-либо версию моего кода.
Комментарии:
1. Какой уровень вы используете? Это план Windows или Linux?
2. Я видел запуск pip install в вашем журнале развертывания, это меня немного смущает, возможно, я мало что знаю о python. Итак, вы не против поделиться тем, как настроен ваш конвейер выпуска?
3. @KrzysztofMadej Я использую план B1
4. @LeoLiu-MSFT запуск pip install похож на запуск Nuget: вам нужно установить зависимости, иначе приложение с треском вылетит
![]()
5. @Abdelkrim, размещенные в Microsoft агенты предоставляют 10 ГБ хранилища для исходных текстов и выходных данных сборки — learn.microsoft.com/en-us/azure/devops/pipelines/agents/… Все веб-приложения в рамках плана службы приложений Azure совместно используют ресурсы.
Ответ №1:
@Abdelkrim, размещенные в Microsoft агенты предоставляют 10 ГБ хранилища для исходных текстов и результатов сборки — здесь — все веб-приложения в рамках плана службы приложений Azure совместно используют ресурсы.
Если ваш исходный код и выходные данные сборки занимают более 10 ГБ, я предлагаю вам запустить сборку с помощью автономного агента. Для проблемы с хранилищем python вы можете попробовать очистить кеш с помощью приведенной ниже команды один раз и посмотреть, поможет ли это. —> pip install —no-cache-dir tensorflow-gpu
Кроме того, просто для изоляции, ошибка, вероятно, связана с изменением температуры (в вашей таблице показано 100% использование) — это раздел, отдельный от вашего дискового пространства. Он используется для операций docker, таких как распаковка / запись, для которых требуется временный каталог для выгрузки файлов во время обработки. -При использовании интегрированного конвейера он проходит через код веб-разработки, который не поддерживает длину содержимого более 2 ГБ.
Что касается доступа к диску: — Похоже, вы пересматриваете ограничение пространства для хранения плана службы приложений и размещенных агентов. Кроме того, приложения Linux в службе приложений запускаются в своих собственных контейнерах. Доступ к операционной системе хоста не разрешен, у вас есть root-доступ к контейнеру. Аналогично, для приложений, работающих в контейнерах Windows, у вас есть административный доступ к контейнеру, но нет доступа к операционной системе хоста.
<<Добавлено в качестве ответа; из комментариев>>
Комментарии:
1. уважаемый @ajaykumar-msft Я понимаю, что вы говорите, но это ошибка в архитектуре Azure! Я больше не могу развертывать приложения в своем плане B1! Не могли бы вы усугубить проблему?
2. уважаемый @ajaykumar-msft Почему я должен устанавливать tensorflow-gpu в свой проект? Опять же, это безумие, что Microsoft считает, что мне нужно устанавливать библиотеки, которые не имеют никакого отношения к моему бизнесу
3. Приносим извинения за любую путаницу. Я поделился более подробной информацией в разделе комментариев. Я пробовал аналогичные развертывания в плане B1, и все в порядке. Вы заявили, что развернули новое приложение, не могли бы вы подтвердить, было ли оно в новом плане обслуживания приложений B1 или в существующем плане B1. Просто для изоляции и, если это возможно, пожалуйста, увеличьте масштаб до стандартного плана S1, а затем попробуйте (после теста вы можете сразу уменьшить масштаб до B1).
4. Как упоминалось в этой статье — если вы используете «df», дисковое пространство, которое вы видите, не будет отражать эту квоту — techcommunity.microsoft.com/t5/apps-on-azure/… Кроме того, вы можете проверить свой лимит и использование портала, перейдя в раздел «Диагностика и решение проблем» блейда службы приложений, выбрав «Рекомендации», «Рекомендации по доступности, производительности», а затем «Использование временных файлов на рабочих». Обратите внимание, что отображаемое использование и ограничения указаны для каждого работника и агрегируются по всем приложениям в одном плане обслуживания приложений.
5. @ajakumar-msft Я перенес свою «службу приложений» в другой план B1. Теперь это снова работает, потому что в плане есть только одно приложение. Но теперь я плачу новый план, потому что предыдущий план работает некорректно!
Ответ №2:
Я также сталкиваюсь с той же проблемой, и это связано с тем, что если вы включили «SCM_DO_BUILD_DURING_DEPLOYMENT» или «ENABLE_ORYX_BUILD», и для развертывания используется папка tmp, в которой она установлена в / directory, и у вас нет места для развертывания.
Лучшим решением может быть обновление плана обслуживания приложений, и это решит проблему