簡體   English   中英

無法在Docker中運行Asp.Net核心Web API支架應用程序?

[英]Cannot run Asp.Net core web api scaffolded application in docker?

我使用Visual Studio 2017並創建了具有Docker(Linux)支持的Web API應用程序。 並且在運行時給出了以下消息。

PS C:\> docker run hack2
warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35]
      No XML encryptor configured. Key {93297fb1-e111-46f6-91e1-1bb4878a3941} may be persisted to storage in unencrypted
 form.
Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.

這是腳手架的Docker文件。

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["hack2/hack2.csproj", "hack2/"]
RUN dotnet restore "hack2/hack2.csproj"
COPY . .
WORKDIR "/src/hack2"
RUN dotnet build "hack2.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "hack2.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "hack2.dll"]

在本地Windows 10 PC上嘗試時,它顯示

$ curl localhost/api/values
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (7) Failed to connect to localhost port 80: Connection refused

然后我將圖像復制到Linux盒中並嘗試curl

curl localhost/api/values
<HTML><HEAD>
<TITLE>Request Error</TITLE>
</HEAD>
<BODY>
<FONT face="Helvetica">
<big><strong></strong></big><BR>
</FONT>
<blockquote>
<TABLE border=0 cellPadding=1 width="80%">
<TR><TD>
<FONT face="Helvetica">
<big>Request Error (invalid_request)</big>
<BR>
<BR>
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
Your request could not be processed. Request could not be handled
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica">
This could be caused by a misconfiguration, or possibly a malformed request.
</FONT>
</TD></TR>
<TR><TD>
<FONT face="Helvetica" SIZE=2>
<BR>
For assistance, contact your network support team.
</FONT>
</TD></TR>
</TABLE>
</blockquote>
</FONT>
</BODY></HTML>

盒子上的端口80是否可用(默認Web服務器未使用?)

嘗試docker run -p 80:80 hack2

Docker文檔中查看docker run --publish以了解如何與主機共享端口的詳細信息。

暫無
暫無

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

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