在 Visual Studio 2019 中創建了一個小型 .Net 5.0 應用程式,并使用 linux 容器為其添加了 docker-compose 容器編排支持。我將 docker-compose 專案設定為 Visual Studio 中的默認啟動應用程式,這兩天一切都很順利,直到我決定改變我的配置,這樣我的容器就會有一個穩定的埠號,而不是隨機更改。
我不確定我做了什么,但 Visual Studio 不再附加到容器,并且通常在容器啟動時打開的瀏覽器視窗不再存在。容器正在運行,但應用程式不回應我正在嘗試的新埠號或舊埠號。
代碼在 VS 中構建良好,Dockerfile 構建成功,并且docker-compose up命令在 Visual Studio 中運行良好。
我在我的 docker-compose 檔案中運行了 portainer,我可以看到容器正在運行,但它沒有產生任何日志。我登錄到我的使用portainer運行的容器中,并安裝了procps的包像這樣:apt-get update; apt-get -y install procps。當我運行時,ps我看到我的應用程式實際上并沒有運行。
root@46c62bf07df3:/app# ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 2195 0 20 0 3868 3280 do_wai Ss pts/2 0:00 bash
0 0 2216 2195 20 0 7556 1212 - R pts/2 0:00 ps l
uj5u.com熱心網友回復:
想出了如何讓它再次作業,但我仍然不知道它為什么會發生,而且它似乎時不時地隨機出現。
我最終創建了另一個臨時啟動應用程式并向其中添加了容器編排,以便我可以查看它是否會運行并將檔案與我的真實應用程式進行比較。新的臨時應用程式確實在 docker-compose 中成功運行,因此我開始查看兩個應用程式之間各種檔案的差異。所有這些都是小差異,即使我更新了我的真實應用程式以匹配臨時應用程式的檔案,它仍然無法運行。
我注意到在 Visual Studio 2019 中,您實際上可以看到有關正在運行的 docker 容器的詳細資訊,并且還注意到它向我展示了臨時應用程式和我關心的真實應用程式。因此,我查看了兩者的所有容器詳細資訊,并縮小了一個名為的標簽,該標簽com.microsoft.visualstudio.debuggee.arguments
顯然在我的真實應用程式的容器中缺少某些內容。
臨時應用程式將該標簽設定為:
--additionalProbingPath /root/.nuget/packages "/app/bin/Debug/net5.0/Test.dll"
但是我真正的應用程式卻有這個,它缺少啟動/除錯我的應用程式所需的程式集的路徑。
--additionalProbingPath /root/.nuget/packages ""

Visual Studio 創建一個檔案obj\Docker\docker-compose.vs.debug.g.yml,并在您除錯時將其傳遞給 docker-compose,而該標簽缺少讓我的應用程式啟動和運行的魔法。
我不知道為什么 Visual Studio 正在 fubaring 這個檔案,但它繼續隨機發生。
這些是最終讓它作業的步驟。
- 關閉 Visual Studio 的所有實體
- 手動洗掉以下檔案夾
.cr
.vs
bin
obj
- 手動洗掉
.user專案中的所有檔案。 - 打開 Docker Desktop 并洗掉由您的專案創建的 docker-compose 堆疊。

- 洗掉專案的 docker 鏡像

- 加載您的專案并嘗試再次運行它。
Visual Studio 這次應該用正確的位重新生成上面提到的檔案,并且應該附加到容器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/339419.html
標籤:视觉工作室 码头工人 docker-compose 集装箱 视觉工作室-2019
上一篇:Unity陀螺儀只讀2軸
