簡體   English   中英

Do.net docker 容器

[英]Dotnet docker container

我創建了一個 Default Web Api 項目(Weatherforecast),並且在不修改它的情況下添加了 Docker 支持。 之后,我通過單擊 docker 文件(在 Visual Studio 2022 上)並選擇 Build Docker Image 來構建圖像。 眾所周知,默認項目在本地主機上運行良好。 現在,我關閉 Visual Studio 並像這樣運行圖像:

docker run -d -p 8080:80 --name somename myimage

容器運行並似乎打開端口 8080,至少是它在 Docker 桌面上所說的,但服務器沒有運行。 如果我嘗試以下地址:

http://localhost:8080/swagger/index.html

我在瀏覽器上什么也得不到。

如果我使用 Docker 從 Visual Studio 內部運行該項目,它工作正常。 這讓我發瘋。 關於如何正確運行 do.net docker 圖像的任何想法?

順便說一句,一旦我讓容器運行(不是 web api 項目),如果我在容器內運行 go 並手動運行do.net myimage.dll它會說明地址:http://*:80 已被占用...

有任何想法嗎?
謝謝。

默認情況下,Swagger 僅在應用程序在開發環境中運行時啟用。 默認情況下,.NET docker 容器在生產環境中運行,因此 Swagger 不可用。

快速修復是在運行容器時設置環境,如下所示

docker run -d -p 8080:80 --name somename -e ASPNETCORE_ENVIRONMENT=Development myimage

對於更永久的解決方案,您可以添加

ENV ASPNETCORE_ENVIRONMENT=Development

到您的 Dockerfile,在“基礎”或“最終”部分中,因此它最終出現在最終圖像中。

暫無
暫無

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

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