Configurações de inicialização das Ferramentas de Contêiner

Na pasta Propriedades em um projeto ASP.NET Core, você pode encontrar o launchSettings.json arquivo, que contém configurações que controlam como seu aplicativo Web é iniciado em sua máquina de desenvolvimento. Para obter informações detalhadas sobre como esse arquivo é usado no desenvolvimento de ASP.NET, consulte Usar vários ambientes em ASP.NET Core.

Você pode editar esse arquivo diretamente, mas no IDE do Visual Studio, você também pode editar as propriedades nesse arquivo por meio da interface do usuário. Escolha a lista suspensa ao lado da opção de inicialização (por exemplo, Docker ou .NET SDK) e escolha Propriedades de Depuração.

Em launchSettings.json, as configurações na seção docker estão relacionadas à forma como o Visual Studio lida com aplicativos em contêineres.

    "Docker": {
      "commandName": "Docker",
      "launchBrowser": true,
      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
      "DockerfileRunArguments": "-l mylabel=value",
      "environmentVariables": {
        "ASPNETCORE_URLS": "https://+:443;http://+:80",
        "ASPNETCORE_HTTPS_PORT": "44360"
      },
      "httpPort": 51803,
      "useSSL": true,
      "sslPort": 44360
    }

A configuração commandName identifica que esta seção se aplica às Ferramentas de Contêiner.

A maioria das configurações em launchSettings.json estão disponíveis e aplicáveis se você estiver usando um Dockerfile ou usando o suporte interno de compilação de contêiner do SDK do .NET (disponível para .NET 7 e posterior).

A tabela a seguir mostra as propriedades que podem ser definidas nesta seção:

Nome da configuração Exemplo Descrição
commandLineArgs "commandLineArgs": "--mysetting myvalue" Esses argumentos de linha de comando para iniciar seu aplicativo são usados ao iniciar seu projeto no contêiner.
DockerfileRunArguments "dockerfileRunArguments": "-l mylabel=value" Argumentos adicionais para passar para o docker run comando.
environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"``
}
Esses valores de variável de ambiente são passados para o processo quando ele é iniciado no contêiner.
httpPort "httpPort": 24051 Essa porta no host é mapeada para a porta 80 do contêiner ao iniciar o contêiner.
launchBrowser "launchBrowser": true Indica se o navegador deve ser iniciado após iniciar o projeto com êxito.
launchBrowserTimeout "launchBrowserTimeout": 1 A quantidade máxima de tempo (em segundos) para aguardar o aplicativo estar pronto antes de iniciar o navegador.
launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Essa URL é usada ao iniciar o navegador. Os tokens de substituição com suporte para esta cadeia de caracteres são:

- {Scheme} - Substituído por um http ou https dependendo se SSL é usado.

- {ServiceHost} - Geralmente substituído por localhost.
No entanto, quando você está direcionando contêineres do Windows no Windows 10 RS3 ou versões anteriores, ele é substituído pelo IP do contêiner.

- {ServicePort} – geralmente substituído por um sslPort ou httpPort, dependendo de se o SSL é usado.
Quando você está direcionando contêineres do Windows no Windows 10 RS3 ou versões anteriores, no entanto, ele é substituído por um 443 ou 80, dependendo de se o SSL é usado.
sslPort "sslPort": 44381 Essa porta no host é mapeada para a porta 443 do contêiner ao iniciar o contêiner.
useSSL "useSSL": true Indica se o SSL deve ser usado ao iniciar o projeto. Se useSSL não for especificado, o SSL será usado quando sslPort > 0.

Observação

Se as mesmas configurações, por exemplo, DockerfileRunArguments, forem encontradas no arquivo de projeto e no arquivo de configurações de inicialização, o valor no arquivo de configurações de inicialização terá precedência.

Nome da configuração Exemplo Descrição
commandLineArgs "commandLineArgs": "--mysetting myvalue" Esses argumentos de linha de comando para iniciar seu aplicativo são usados ao iniciar seu projeto no contêiner.
containerRunArguments "containerRunArguments": "-l mylabel=value" Como dockerfileRunArguments, mas para uso com o tipo de build de contêiner do SDK do .NET.
DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" Argumentos adicionais para passar para o docker run comando.
/
Essa configuração só se aplica a projetos que usam o tipo de build de contêiner do Dockerfile.

No Visual Studio 17.3 e posterior, você pode usar os seguintes tokens de substituição adicionados:

- {ProjectDir} – caminho completo para o diretório do projeto.

- {OutDir} – o valor da propriedade OutDir do MSBuild.
environmentVariables "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Esses valores de variável de ambiente são passados para o processo quando ele é iniciado no contêiner.
httpPort "httpPort": 24051 Essa porta no host é mapeada para a porta 80 do contêiner ao iniciar o contêiner.
launchBrowser "launchBrowser": true Indica se o navegador deve ser iniciado após iniciar o projeto com êxito.
launchBrowserTimeout "launchBrowserTimeout": 1 A quantidade máxima de tempo (em segundos) para aguardar o aplicativo estar pronto antes de iniciar o navegador.
launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Essa URL é usada ao iniciar o navegador. Os tokens de substituição com suporte para esta cadeia de caracteres são:

- {Scheme} - Substituído por um http ou https, dependendo se SSL é usado.

- {ServiceHost} - Geralmente substituído por localhost.
No entanto, quando você está direcionando contêineres do Windows no Windows 10 RS3 ou versões anteriores, ele é substituído pelo IP do contêiner.

- {ServicePort} – geralmente substituído por sslPort ou httpPort, dependendo de se o SSL é usado.
Quando você está direcionando contêineres do Windows no Windows 10 RS3 ou versões anteriores, no entanto, ele é substituído por um 443 ou 80, dependendo de se o SSL é usado.
publishAllPorts "publishAllPorts": true Se for true, passe -P para docker run, que publica todas as portas expostas em uma porta aleatória. Consulte Documentação do Docker. No entanto, quando você especifica sslPort, o Visual Studio ainda passa -p 5002:443, portanto, seu serviço ainda deve estar escutando na porta 5002.
sslPort "sslPort": 44381 Essa porta no host é mapeada para a porta 443 do contêiner ao iniciar o contêiner.
useSSL "useSSL": true Indica se o SSL deve ser usado ao iniciar o projeto. Se useSSL não for especificado, o SSL será usado quando sslPort > 0.

Observação

Se as mesmas configurações, por exemplo, DockerfileRunArguments, forem encontradas no arquivo de projeto e no arquivo de configurações de inicialização, o valor no arquivo de configurações de inicialização terá precedência.

Próximas etapas

Configure seu projeto definindo as propriedades de build das Ferramentas de Contêiner.

Confira também