使用docker-compose和https时如何让Visual Studio启动正确的URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker-compose和https时如何让Visual Studio启动正确的URL相关的知识,希望对你有一定的参考价值。

我创建了一个.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");
}

Dockerfile

FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 443
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "MyApp.dll"]

泊坞窗,compose.override.yml

version: '3'

services:
  myapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - Port=443
    ports:
      - 443
networks:
  default:
    external:
      name: nat
答案

好吧,我已经找到了自己如何解决这个问题。

右键单击docker-compose项目并转到属性。

在那里,您可以配置在运行时启动的服务URL。

另一答案

对于任何寻找代码解决方案的人来说,导致随机端口的是docker-compose.override.yml中的这一行:

 ports:
  - "80"

只需删除它并添加您的端口,例如:

 ports:
  - "8080:80"

以上是关于使用docker-compose和https时如何让Visual Studio启动正确的URL的主要内容,如果未能解决你的问题,请参考以下文章

使用 Docker-Compose 时如何执行 Django 数据库迁移?

如何使用 Pycharm 逐步完成使用 Django 和 docker-compose 的测试?

docker-compose:如何立即查看文件更改(开发时)

使用 docker-compose up 运行时如何优雅地停止 Dockerized Python ROS2 节点?

使用 docker-compose 在 Windows 上构建气流时出错

如何使用 docker-compose.yml 和 ecs-cli 将 EBS 卷附加到我的容器