You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 8.0 Docker容器无法将环境端口赋值给ASPNETCORE_URLS

ASP.NET Core 8.0 Web API Docker部署Heroku失败问题解决

本地直接运行ASP.NET Core 8.0 Web API时,能正常在localhost:5000启动,但通过Docker容器部署到Heroku,或在本地Docker环境运行时均无法正常工作。

所用Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["Onitama.Api/Onitama.Api.csproj", "Onitama.Api/"]
COPY ["Onitama.Core/Onitama.Core.csproj", "Onitama.Core/"]
COPY ["Onitama.Bootstrapper/Onitama.Bootstrapper.csproj", "Onitama.Bootstrapper/"]
COPY ["Onitama.Infrastructure/Onitama.Infrastructure.csproj","Onitama.Infrastructure/"]
RUN dotnet restore "Onitama.Api/Onitama.Api.csproj"
COPY . .
WORKDIR "/src/Onitama.Api"
RUN dotnet build "Onitama.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build

FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "Onitama.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish

FROM base AS final

WORKDIR /app
COPY --from=publish /app/publish .

CMD ASPNETCORE_URLS=http://+:$PORT dotnet Onitama.Api.dll

遇到的异常情况

控制台显示CMD已正确识别$PORT环境变量,但程序并未在该端口运行。尝试移除entrypoint后,出现HTTPS重定向警告:

2024-05-23T20:42:57.675131+00:00 app[web.1]: warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]

2024-05-23T20:42:57.675135+00:00 app[web.1]:       Failed to determine the https port for redirect.

解决方案

通过以下操作解决问题:

  • 移除Dockerfile中的entrypoint配置
  • 在ASP.NET应用中禁用HTTPS重定向

说明:Heroku已启用自动SSL认证,即使禁用应用内的HTTPS重定向,浏览器仍可通过HTTPS正常访问API。

内容的提问来源于stack exchange,提问作者billion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:53:22