我正在尝试通过将我的 blazor 服务器应用程序运行到 docker 容器中来调试它。我的应用程序使用的是配置为 4100 Host_port 的 AD B2C。我已经创建了 dockerfile,它正在创建图像并启动 docker 容器。问题是我试图在 dockerfile 中定义 Host_Port,以便 docker run 命令可以从 dockerfile 中获取它。首先,这可能吗?如果是的话怎么办?
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["TS.UI/TS.UI.csproj", "TS.WebUI/"]
COPY ["TS.Common/TS.Common.csproj", "TS.Common/"]
COPY ["TS.Lab/TS.Lab.csproj", "TS.Lab/"]
RUN dotnet restore "TS.WebUI/TS.WebUI.csproj"
COPY . .
WORKDIR "/src/TS.WebUI"
RUN dotnet build "TS.UI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "TS.UI.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "TS.UI.dll"]
在这里,我尝试添加
ENV ASPNETCORE_HTTPS_PORT=4100
,但它也不起作用。
我也尝试过使用
Expose 4100
,但这也是在本地主机上创建的:{someRandomPort}:{ExposePort}
我已经使用 compose 完成了它。而且它运行良好。对于知识的角度,我只是尝试是否可能。
launchSettings.json
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80"
},
"publishAllPorts": false,
"useSSL": true,
"sslPort": 4100
}
我们可以使用 sslPort 提供特定端口。