Nginx не находит статические файлы в приложении Dockered Django в Azure Web App для контейнеров
Мне удалось запустить мое приложение Django локально с помощью docker compose (контейнер Django + контейнер Nginx), и оно работает нормально, но когда я хочу запустить его в Azure web app для контейнеров, nginx не может найти ресурсы. Я не знаю, должен ли я изменить некоторые настройки, чтобы оно могло работать в сервисах Azure, или мне нужно включить порты в настройках приложения Azure, чтобы мои контейнеры могли взаимодействовать.
Вот моя конфигурация nginx (nginx.conf) :
upstream myapp {
server web:8000;
}
server {
listen 80;
server_name myappname.azurewebsites.net;
location / {
proxy_pass http://myapp;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /home/app/web/static/;
}
location /media/ {
alias /home/app/web/media/;
}
}
Я не знаю, почему при запуске docker compose он работает локально, но в azure web app nginx не может найти статические файлы.
Пожалуйста, дайте мне знать, если мне нужно уточнить или включить что-то еще.
Заранее спасибо.
Спасибо Joseba S. . Размещаю ваше предложение в качестве ответа, чтобы помочь другим членам сообщества.
python manage.py collectstatic
Эта команда нужна для того, чтобы Django скопировал все ваши статические файлы в каталог, указанный в параметре STATIC_ROOT. Помните, что вы должны выполнять эту команду каждый раз, когда у вас есть какие-то изменения в ваших статических файлах.
Разверните контейнеры разработки:
$ docker-compose down -v
Тест:
$ docker-compose -f docker-compose.prod.yml up -d --build
$ docker-compose -f docker-compose.prod.yml exec web python manage.py migrate --noinput
$ docker-compose -f docker-compose.prod.yml exec web python manage.py collectstatic --no-input --clear
Вы также можете проверить в журналах docker-compose -f docker-compose.prod.yml logs -f
, что запросы к статическим файлам успешно обслуживаются через Nginx.
Вы можете обратиться к Dockerizing Django with Postgres, Gunicorn, and Nginx, Cannot locate static files after deploying with docker и Nginx failing to serve django static or media files