使用的工具为Visual Studio for Mac v18.1.2 (build 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 时,它显示网站无法访问。
此外,在输出中我看到以下警告:
为什么 ASPNETCORE_URLS 环境变量设置的 URL 无法生效?warn: Microsoft.AspNetCore.Server.Kestrel[0] 无法绑定到 IPv6 回环接口上的 https://localhost:5001:'无法分配请求的地址'。 Microsoft.AspNetCore.Server.Kestrel:Warning: 无法绑定到 IPv6 回环接口上的 https://localhost:5001:'无法分配请求的地址'。托管环境: 开发 内容根路径: /app 现在正在侦听: https://localhost:5001
还有哪些故障排除方法可以使用来找到问题?