打包时指定
ENV ASPNETCORE_URLS=http://+:5000
或 appsettings.json
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://localhost:5000"
}
}
}
}
或者
CMD ["dotnet", "MyApp.dll","--urls","http://0.0.0.0:5000"]
主要是想知道为什么配置在docker容器里面不生效,"urls": "http://*:8003",这个配置在非docker环境下不指定端口号启动就可以应用配置
来自AI:
如果你的.NET Core程序在Docker中的配置文件中的端口号不生效,可能是由于以下原因之一:
-p
或 --publish
参数来映射端口,例如:docker run -p 8003:80 <image>
ENV
指令来设置环境变量,或者在使用 docker run
命令时通过 -e
参数设置环境变量,例如:docker run -e ASPNETCORE_URLS="http://*:8003" <image>
--network
参数来连接到宿主网络。自己解决了