Служба приложений Azure: Как запустить команду управления для докеризованного приложения django
У меня есть приложение django, запущенное в docker-compose в локальной среде вместе с nginx и frontend-приложением. Я пытался развернуть приложение в azure app service, используя мой собственный образ docker для приложения django.
Установка приложения прошла успешно, но теперь мне нужно выполнить команду управления django, такую как python manage.py migrate
и python manage.py createsuperuser
.
Я пытался использовать SSH в моем контейнере django, но когда я пытаюсь подключиться, он показывает
az webapp create-remote-connection --subscription <id> --resource-group <rg-name> -n <app-anme> &
Есть ли другой способ запускать команды управления django в azure app service с многоконтейнерным приложением.
Вы можете сделать просто вот так в docker-compose
command: >
sh -c 'python manage.py migrate &&
python manage.py runserver 0.0.0.0:8000'
и вы можете выполнить непосредственно эту команду:
docker-compose run --rm projectname sh -c "python manage.py createsuperuser"
Это решит вашу проблему
Запустите миграцию базы данных Django:
Миграция базы данных Django гарантирует, что схемы в базе данных PostgreSQL on Azure соответствуют схемам, описанным в вашем коде.
Откройте сеанс SSH в браузере, перейдя по адресу https://.scm.azurewebsites.net/webssh/host, и войдите в систему, используя учетные данные учетной записи Azure (не учетные данные сервера базы данных).
.В сеансе SSH выполните следующие команды (вы можете вставить команды, используя Ctrl+Shift+V):
cd site/wwwroot
Активируйте виртуальную среду по умолчанию в контейнере App Service
источник /antenv/bin/activate
Установка пакетов
pip install -r requirements.txt
Запуск миграции базы данных
python manage.py migrate
Создайте суперпользователя (следуйте подсказкам)
python manage.py createsuperuser
Команда createuperuser запрашивает учетные данные суперпользователя.
Вы не определили никаких команд, которые контейнер должен выполнять при запуске, поэтому я думаю, что ваш контейнер просто завершает работу, и вы не можете подключиться к нему из-за этого.
Создайте файл (например, init.sh) с командами запуска (run ssh, migrate the db, collectstatic & runserver) и укажите на этот файл внизу вашего Dockerfile в команде ENTRYPOINT