我設法使用 docker compose(Django 容器 Nginx 容器)在本地運行我的 Django 應用程式并且它作業正常,但是當我想在 Azure Web 應用程式中為容器運行它時,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 應用程式中,nginx 找不到靜態檔案。
如果我需要澄清或包含任何其他內容,請告訴我。
提前致謝。
uj5u.com熱心網友回復:
謝謝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的在Postgres,Gunicorn和Nginx的,與搬運工部署后無法找到靜態檔案和Nginx的未能滿足Django的靜態或媒體檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/323900.html
標籤:姜戈 天蓝色 码头工人 nginx azure-web-app-for-containers
上一篇:Nuxt不創建dist目錄
