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

Na pasta Propriedades em um projeto principal do ASP.NET, você pode encontrar o launchSettings.json arquivo, que contém configurações que controlam como seu aplicativo Web é iniciado em seu computador 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, ou .NET SDK) e, em seguida, Docker escolha Propriedades de depuração para um projeto de contêiner único.

Captura de tela da caixa de diálogo do perfil de inicialização, mostrando as configurações de inicialização para um perfil de inicialização de contêiner.

Em Docker Compose, escolha Gerenciar configurações de inicialização do Docker Compose e consulte Iniciar um subconjunto de serviços de composiçã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 está launchSettings.json disponível e aplicável se você estiver usando um Dockerfile ou usando o suporte de build de contêiner interno 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 ou http 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.

Propriedade na interface do usuário do perfil de depuração Nome da configuração em launchSettings.json Exemplo Descrição
Argumentos de linha de comando commandLineArgs "commandLineArgs": "--mysetting myvalue" Esses argumentos de linha de comando para iniciar seu aplicativo são usados ao iniciar seu projeto no contêiner.
Argumentos de execução de contêiner containerRunArguments
Argumentos de Execução de Contêiner
"containerRunArguments": "-l mylabel=value" Argumentos adicionais para passar para o docker run comando.

(Use a versão em minúsculas no Visual Studio 17.12 e posterior. A versão em maiúsculas foi introduzida no Visual Studio 17.9 e é fornecida para compatibilidade com versões anteriores.)

Você pode usar os seguintes tokens de substituição:

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

- {OutDir} – o valor da propriedade OutDir do MSBuild.
N/D DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" Como containerRunArguments, mas apenas para projetos que usam o tipo de compilação Dockerfile. Para o Visual Studio 17.12 e posterior, é recomendável usá-lo containerRunArguments .
Variáveis de ambiente 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.
Nome do contêiner containerName mycontainer (17.12 e posterior) Um nome para o contêiner que corresponde à expressão [a-zA-Z0-9][a-zA-Z0-9_.-]regular .
Arquivos de ambiente de contêiner containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 e posterior) Uma lista de arquivos de variáveis de ambiente (.env arquivos) separados por ponto-e-vírgula. Consulte a sintaxe do arquivo .env.
Porta HTTP httpPort "httpPort": 24051 Essa porta no host é mapeada para a porta 80 do contêiner ao iniciar o contêiner.
Iniciar navegador launchBrowser "launchBrowser": true Indica se o navegador deve ser iniciado após iniciar o projeto com êxito.
N/D launchBrowserTimeout "launchBrowserTimeout": 1 A quantidade máxima de tempo (em segundos) para aguardar até que o aplicativo esteja pronto antes de iniciar o navegador (somente Docker Compose).
Url 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 ou http 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.
Publicar todas as portas 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.
Porta SSL sslPort "sslPort": 44381 Essa porta no host é mapeada para a porta 443 do contêiner ao iniciar o contêiner.
N/D 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.

Nem todas as configurações estão disponíveis na interface do usuário, por exemplo, useSSL. Para alterar essas configurações, edite launchSettings.json diretamente.

A configuração DockerfileRunArguments é substituída no Visual Studio 2022 17.12 e posterior por containerRunArguments, que pode ser definido na interface do usuário de perfis de inicialização como Container run arguments.

Observação

Se a mesma configuração for encontrada 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