Можно ли установить пакеты на ОС хоста в веб-приложении Azure (Linux) - PullRequest
0 голосов
/ 16 июня 2020

Я создал веб-приложение Python, используя Django, и в настоящее время пытаюсь реализовать SSO.

При локальном запуске проекта он работает нормально, потому что я установил необходимые пакеты, используя brew install libxml2 libxmlsec1. Когда я развертываю проект в Azure, мой файл requirements.txt не может быть установлен, потому что базовые зависимости не установлены в контейнере Azure.

В попытке исправить это я добавил предварительную сборку . sh сценарий для запуска перед развертыванием.

#!/bin/bash

sudo apt-get -y update
sudo apt-get -y install gcc
sudo apt-get -y install pkg-config
sudo apt-get -y install libxml2-dev libxmlsec1-dev libxmlsec1-openssl
sudo apt-get -y install xmlsec1

Это не работает. В логах вижу: sudo command not found. Я также пытался запустить его с su -c и с su - в первой строке. Если я вообще не использую sudo / su -c / su -, появится сообщение об ошибке недостаточных прав.

При установке пакетов вручную через клиент S SH все будет установлено правильно. Единственная проблема в том, что после выхода из сеанса изменения не сохраняются.

Кто-нибудь знает, как установить необходимые зависимости на Azure?

1 Ответ

1 голос
/ 17 июня 2020

Вся среда выполнения, предоставляемая Azure, является встроенным образом для общих целей. Возможно, это не соответствует вашим потребностям. Как и в ситуации, с которой вы столкнулись, она не содержит необходимых вам зависимостей.

В это время вам нужно создать среду выполнения самостоятельно для вашей специальной цели, это означает, что вам нужно создать пользовательский образ . Для пользовательского образа он может содержать все, что нужно вашему приложению. Это означает зависимости, а также Django и ваше приложение SSO. Когда пользовательский образ может нормально работать как ваш wi sh локально, вы можете развернуть его в Azure веб-приложении для контейнера и больше не нужно развертывать код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...