我已经使用Visual Studio(VS)模板创建了一个.net核心3.1 grpc项目,并向其中添加了docker支持(targe:Linux os)。
有了sayhello代码,在模板中,我使用VS IDE对其进行了运行,并且运行良好,并提供了http默认页面。
但是,当我们在控制台中使用docker build和docker run命令运行它时,控制台会显示其监听状态,并且容器正在运行。但是服务无法访问,并且收到的错误是无法到达站点。
我已经从VS容器工具输出窗口中获取并发布了构建和运行命令,但是仍然无法访问该服务,也不会显示默认页面。有谁遇到过同样的问题,我们将不胜感激。
Docker文件
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY "GrpcService2.csproj" .
RUN dotnet restore "GrpcService2.csproj"
COPY . .
RUN ls -R
WORKDIR "/src"
RUN dotnet build "GrpcService2.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "GrpcService2.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "GrpcService2.dll"]
也许您必须查找docker公开的端口。请参阅docker仪表板。我还没有发现如何配置修复端口。在每次服务启动时,docker都会使用一个新端口...