簡體   English   中英

通過三種方法將 Django 應用程序部署到 Azure 失敗(創建/訪問 tmp 文件的問題)

[英]Django App Deployment to Azure Failing Via Three Methods (problems creating/accessing tmp files)

我一直在嘗試將代碼從我的 Django 應用程序上傳到 Azure。 使用多種方法,它一直失敗,日志消息如下所示。 失敗似乎與 Onyx 構建創建臨時目錄有關。 為了透明,我是 Django 和 Azure 的新手。

首先,我完成了 Azure 教程(下面的鏈接),並且能夠以最少的問題運行它。

https://docs.microsoft.com/en-us/azure/app-service/tutorial-python-postgresql-app?tabs=bash%2Cclone

當我嘗試對我自己的應用程序執行相同的步驟(使用“webapp up”)時,我收到以下錯誤消息:

Zip 部署失敗。 {'id': 'XXXXX', 'status': 3, 'status_text': '', 'author_email': 'N/A', 'author': 'N/A', 'deployer': 'Push-Deployer ', 'message': '通過推送部署創建', 'progress': '', 'received_time': '2020-10-21T13:59:11.0137785Z', 'start_time': '2020-10-21T13:59 :11.3572791Z','end_time':'2020-10-21T13:59:34.2598809Z','last_success_end_time':無,'完成':真,'活動':假,'is_temp':假,':'is真的,'url':'https://att-informativeness-task.scm.azurewebsites.net/api/deployments/latest','log_url':'https://att-informativeness-task.scm.azurewebsites.net /api/deployments/latest/log', 'site_name': 'att-informativeness-task'}。 請運行命令 az webapp log deployment show -n att-informativeness-task -g DjangoPostgres-attInform-rg

運行他們推薦的命令,

az webapp log deployment show -n att-informativeness-task -g DjangoPostgres-attInform-rg

我得到:

[ { "details_url": null, "id": "XXXXXX", "log_time": "2020-10-21T13:59:11.2061269Z", "message": "更新子模塊。", "type": 0 }, { "details_url": null, "id": "XXXXXX", "log_time": "2020-10-21T13:59:11.324348Z", "message": "准備部署提交 ID '53d578b78c'。", "type ": 0 }, { "details_url": null, "id": "XXXXXX", "log_time": "2020-10-21T13:59:11.6729002Z", "message": "repository path is /tmp/zipdeploy/提取”,“類型”:0 },{“details_url”:“https://att-informativeness-task.scm.azurewebsites.net/api/deployments/53d578b78cf941b986537b13d0e6dd06/log/cb3995cc-270caf9f2” , "id": "XXXXXX", "log_time": "2020-10-21T13:59:11.8452701Z", "message": "Running oryx build...", "type": 2 } ]

在他們鏈接的日志文件中,它給出了一個類似於我從 Bitbucket 得到的錯誤。 由於以更易讀的格式粘貼在下面,因此我不會將其粘貼在這里。

經過多次嘗試,然后我嘗試按照說明推送到 Azure 目錄,如以下鏈接所述(將運行時替換為“python:3.6”)。

https://docs.microsoft.com/en-us/azure/developer/javascript/tutorial-vscode-azure-cli-node-04

運行命令時

git push azure master

我收到錯誤消息:

遠程:....................... 遠程:Pip 安裝要求。 遠程:無效要求:'asgiref @ file:///tmp/build/80754af9/asgiref_1602513567813/work' 遠程:回溯(最近一次調用):遠程:文件“c:\\home\\site\\wwwroot\\env\\lib\\ site-packages\\pip_internal\\req\\req_install.py”,第 252 行,在 from_line 遠程:req = Requirement(req) 遠程:
文件“c:\\home\\site\\wwwroot\\env\\lib\\site-packages\\pip_vendor\\packaging\\requirements.py”,第 104 行,在init remote: raise InvalidRequirement("Invalid URL given") remote: pip._vendor。 Packaging.requirements.InvalidRequirement:給定的 URL 無效遠程:遠程:您使用的是 pip 版本 10.0.1,但是版本 20.2.4 可用。 遠程:您應該考慮通過“python -m pip install --upgrade pip”命令進行升級。 遠程:網站部署過程中發生錯誤。 遠程:遠程:錯誤 - 更改已提交到遠程存儲庫,但部署到網站失敗。

(順便說一句,我的 pip 版本是 20.2.4)

最后,我嘗試將它鏈接到一個 bitbucket 存儲庫,如下面的鏈接中所述。

https://stories.mlh.io/deploying-a-basic-django-app-using-azure-app-services-71ec3b21db08

在 Azure 部署中心,它給出了“失敗”狀態,並帶有以下消息。

命令:oryx build /home/site/repository -o /home/site/wwwroot --platform python --platform-version 3.7 -i /tmp/8d875cc3f8eaaa0 -p compress_virtualenv=tar-gz -p virtualenv_name=antenv --log-文件 /tmp/build-debug.log 由 Microsoft Oryx 執行的操作, https://github.com/Microsoft/Oryx您可以在https://github.com/Microsoft/Oryx/issues報告問題

Oryx 版本:0.2.20200917.1,提交:59deb778658a124cb74ea8e2c8f39fa87abcc9d9,ReleaseTagName:20200917.1

構建操作 ID:|65ZW7nGEe38=.2744c71e_ 存儲庫提交:fa4d6bc9674997d6c32b0dd6ffc32c29c4364488

正在檢測平台...檢測到以下平台:python:3.7.9 警告:檢測到過時的 python 版本 (3.7.9)。 考慮更新。\\nOryx 支持的版本: https : //github.com/microsoft/Oryx

使用中間目錄“/tmp/8d875cc3f8eaaa0”。

正在將文件復制到中間目錄... 1 秒內完成。

源目錄:/tmp/8d875cc3f8eaaa0 目標目錄:/home/site/wwwroot

Python 版本:/opt/python/3.7.9/bin/python3.7 Python 虛擬環境:antenv 創建虛擬環境...激活虛擬環境...運行 pip install... [14:19:18+0000] 收集appnope==0.1.0 [14:19:18+0000] 下載 appnope-0.1.0-py2.py3-none-any.whl (4.0 kB) 錯誤:由於環境錯誤,無法安裝軟件包:[Errno 2]沒有這樣的文件或目錄:'/tmp/build/80754af9/asgiref_1602513567813/work' [14:19:18+0000] 正在處理 /tmp/build/80754af9/asgiref_1602513567813/work

警告:您正在使用 pip 版本 20.1.1; 但是,版本 20.2.4 可用。 您應該考慮通過“/tmp/8d875cc3f8eaaa0/antenv/bin/python -m pip install --upgrade pip”命令進行升級。 錯誤:由於環境錯誤,無法安裝軟件包:[Errno 2] 沒有這樣的文件或目錄:'/tmp/build/80754af9/asgiref_1602513567813/work'\\n\\n警告:您正在使用 pip 版本 20.1.1; 但是,版本 20.2.4 可用。\\n您應該考慮通過“/tmp/8d875cc3f8eaaa0/antenv/bin/python -m pip install --upgrade pip”命令升級。\\n/opt/Kudu/Scripts/starter.sh oryx build /home/site/repository -o /home/site/wwwroot --platform python --platform-version 3.7 -i /tmp/8d875cc3f8eaaa0 -p compress_virtualenv=tar-gz -p virtualenv_name=antenv --log-file / tmp/build-debug.log

對於所有這些,問題似乎集中在創建和訪問 tmp 目錄上。 這很奇怪,因為該過程適用於 Azure 教程代碼。 我試圖通過創建“production.py”和“settings.txt”等文件,更改“settings.py”文件中的變量,以及在運行后遵循建議,使我自己的代碼與示例保持一致,

python manage.py check --deploy

真的任何建議都會受到歡迎。 謝謝!

想通了是怎么回事。 以為我會在這里發布答案,以防任何其他新手遇到同樣的問題。

問題出在 requirements.txt 文件中。 我已經使用了命令,

pip freeze > requirements.txt 

然后沒有通過結果。 原來有許多包的右側帶有“@file...”。 這些是導致錯誤的原因。 我剛剛刪除了“@file...”並將其替換為包的特定版本。

另外,請確保您指定 psycopg 是二進制文件,使用。

psycopg2-binary==2.8.6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM