【发布时间】:2019-11-05 16:40:42
【问题描述】:
我在 MacOS 上的 Docker 容器中运行 ASP.NET Core 服务。
Visual Studio for Mac v18.1.2(内部版本 2)
.NET Core SDK:2.2.300
这里是 Dockerfile:
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /
COPY src/Services/Service.API/Service.API.csproj src/Services/Service.API/
RUN dotnet restore src/Services/Service.API/Service.API.csproj
COPY . .
WORKDIR /src/Services/Service.API
RUN dotnet build Service.API.csproj -c Release -o /app
FROM build AS publish
RUN dotnet publish Service.API.csproj -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Service.API.dll"]
服务的 docker-compose 文件如下所示:
service.api:
build:
context: .
dockerfile: src/Services/Service.API/Dockerfile
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:80;https://+:443
- ASPNETCORE_HTTPS_PORT=5254
- ASPNETCORE_Kestrel__Certificates__Default__Password=crypticpassword
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
ports:
- "5204:80"
- "5254:443"
volumes:
- ${HOME}/.aspnet/https:/https/
正在运行的 Docker 容器的端口看起来也不错:
0.0.0.0:5204->80/tcp, 0.0.0.0:5254->443/tcp
但是当我尝试拨打https://localhost:5254 时,它说无法访问网站。
在输出中我还看到以下警告:
警告:Microsoft.AspNetCore.Server.Kestrel[0] 无法绑定到 IPv6 环回接口上的 https://localhost:5001:“无法分配请求的地址”。 Microsoft.AspNetCore.Server.Kestrel:警告:无法绑定到 IPv6 环回接口上的https://localhost:5001:'无法分配 要求的地址”。托管环境:开发内容根 路径:/app 正在监听:https://localhost:5001
为什么不采用 ASPNETCORE_URLS 环境变量设置的 url?
我还能做些什么来排除故障以找到问题?
【问题讨论】:
标签: docker asp.net-core https