Chr*_*nes 7 https docker-compose visual-studio-2017 asp.net-core-2.0
我创建了一个.net核心2.0项目,并将其配置为通过HTTPS运行,但是当在Docker调试模式下运行时,我无法让Visual Studio以正确的方案/端口启动浏览器.
当前的行为是VS总是在端口80(HTTP)上启动,因此我每次都必须手动更改URL,这很麻烦.
Program.cs中
public class Program {
public static void Main (string[] args) {
BuildWebHost(args).Run ();
}
public static IWebHost BuildWebHost (string[] args) =>
WebHost.CreateDefaultBuilder (args)
.UseKestrel (options => {
options.Listen (IPAddress.Any, GetPort(), listenOptions => {
// todo: Change this for production
listenOptions.UseHttps ("dev-cert.pfx", "idsrv3test");
});
})
.UseStartup<Startup> ()
.Build ();
public static int GetPort() => int.Parse(Environment.GetEnvironmentVariable("Port") ?? "443");
}
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 443
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "MyApp.dll"]
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.override.yml
version: '3'
services:
myapp:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- Port=443
ports:
- 443
networks:
default:
external:
name: nat
Run Code Online (Sandbox Code Playgroud)
Chr*_*nes 15
好吧,我已经找到了自己如何解决这个问题.
右键单击docker-compose项目并转到属性.
在那里,您可以配置在运行时启动的服务URL.
对于任何寻求代码解决方案的人,造成随机端口的是docker-compose.override.yml中的以下行:
ports:
- "80"
Run Code Online (Sandbox Code Playgroud)
只需删除它并添加您的端口即可,例如:
ports:
- "8080:80"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |