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.
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.