Configuración de inicio de las herramientas de contenedor
En la carpeta Propiedades de un proyecto de ASP.NET Core, puede encontrar el launchSettings.json
archivo , que contiene la configuración que controla cómo se inicia la aplicación web en la máquina de desarrollo. Para obtener información detallada sobre cómo se usa este archivo en el desarrollo de ASP.NET, vea Usar varios entornos en ASP.NET Core.
Puede editar este archivo directamente, pero en el IDE de Visual Studio, también puede editar las propiedades de este archivo a través de la interfaz de usuario. Elija la lista desplegable junto a la opción de inicio (por ejemplo, o .NET SDK
) y, a continuación, Docker
elija Propiedades de depuración para un proyecto de contenedor único.
Para Docker Compose, elija Administrar la configuración de inicio de Docker Compose y consulte Inicio de un subconjunto de servicios de redacción.
En launchSettings.json, los valores de la sección Docker están relacionados con la forma en que Visual Studio controla las aplicaciones en contenedores.
"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
}
El valor commandName identifica que esta sección se aplica a las herramientas de contenedor.
La mayoría de las configuraciones launchSettings.json
de están disponibles y aplicables tanto si usa un Dockerfile como si usa la compatibilidad con la compilación de contenedores integrada del SDK de .NET (disponible para .NET 7 y versiones posteriores).
En la tabla siguiente se muestran las propiedades que se pueden establecer en esta sección:
Nombre de valor | Ejemplo | Descripción |
---|---|---|
commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
Estos argumentos de la línea de comandos para iniciar la aplicación se usan al ejecutar el proyecto en el contenedor. |
DockerfileRunArguments | "dockerfileRunArguments": "-l mylabel=value" |
Argumentos adicionales que se van a pasar al docker run comando. |
environmentVariables | "environmentVariables": { "ASPNETCORE_URLS": "https://+:443;http://+:80"``, <br/> "ASPNETCORE_HTTPS_PORT": "44381"`` } |
Estos valores de variables de entorno se pasan al proceso cuando se inicia en el contenedor. |
httpPort | "httpPort": 24051 |
Este puerto del host se asigna al puerto 80 del contenedor al iniciar el contenedor. |
launchBrowser | "launchBrowser": true |
Indica si se debe iniciar el explorador después de iniciar correctamente el proyecto. |
launchBrowserTimeout | "launchBrowserTimeout": 1 |
Cantidad máxima de tiempo (en segundos) que se esperará a que la aplicación esté lista antes de iniciar el explorador. |
launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
Esta dirección URL se usa al iniciar el explorador. Los tokens de reemplazo admitidos para esta cadena son: - {Scheme} : se reemplaza por o http https en función de si se usa SSL. - {ServiceHost} - Normalmente se reemplaza por localhost . Cuando el destino son los contenedores de Windows en Windows 10 RS3 o versiones anteriores, se reemplaza por la dirección IP del contenedor. - {ServicePort} : normalmente se reemplaza por sslPort o httpPort , dependiendo de si se usa SSL. Cuando el destino son los contenedores de Windows en Windows 10 RS3 o versiones anteriores, se reemplaza por " 443 " o "80 ", en función de si se usa SSL. |
sslPort | "sslPort": 44381 |
Este puerto del host se asigna al puerto 443 del contenedor al iniciar el contenedor. |
useSSL | "useSSL": true |
Indica si se debe usar SSL al iniciar el proyecto. Si no se especifica useSSL , se usa SSL cuando sslPort > 0 . |
Nota:
Si la misma configuración, por ejemplo, DockerfileRunArguments
, se encuentra en el archivo del proyecto y en el archivo de configuración de inicio, el valor del archivo de configuración de inicio tiene prioridad.
Propiedad en la interfaz de usuario del perfil de depuración | Establecer el nombre en launchSettings.json | Ejemplo | Descripción |
---|---|---|---|
Argumentos de línea de comandos | commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
Estos argumentos de la línea de comandos para iniciar la aplicación se usan al ejecutar el proyecto en el contenedor. |
Argumentos de ejecución de contenedor | containerRunArguments ContainerRunArguments |
"containerRunArguments": "-l mylabel=value" |
Argumentos adicionales que se van a pasar al docker run comando. (Use la versión en minúsculas en Visual Studio 17.12 y versiones posteriores. La versión en mayúsculas se introdujo en Visual Studio 17.9 y se proporciona para la compatibilidad con versiones anteriores). Puede usar los siguientes tokens de reemplazo: - {ProjectDir} : ruta de acceso completa al directorio del proyecto. - {OutDir} : valor de la propiedad de MSBuild OutDir. |
N/D | DockerfileRunArguments | dockerfileRunArguments": "-l mylabel=value" |
Al igual containerRunArguments que , pero solo para proyectos que usan el tipo de compilación Dockerfile. Para Visual Studio 17.12 y versiones posteriores, se recomienda usar containerRunArguments en su lugar. |
Variables de entorno | environmentVariables | "environmentVariables": {"ASPNETCORE_URLS": "https://+:443;http://+:80" , "ASPNETCORE_HTTPS_PORT": "44381" } |
Estos valores de variables de entorno se pasan al proceso cuando se inicia en el contenedor. |
Nombre del contenedor | containerName | mycontainer |
(17.12 y versiones posteriores) Nombre del contenedor que coincide con la expresión [a-zA-Z0-9][a-zA-Z0-9_.-] regular . |
Archivos de entorno de contenedor | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 y versiones posteriores) Lista de archivos de variables de entorno (.env archivos) separados por punto y coma. Consulte sintaxis del archivo .env. |
Puerto HTTP | httpPort | "httpPort": 24051 |
Este puerto del host se asigna al puerto 80 del contenedor al iniciar el contenedor. |
Iniciar explorador | launchBrowser | "launchBrowser": true |
Indica si se debe iniciar el explorador después de iniciar correctamente el proyecto. |
N/D | launchBrowserTimeout | "launchBrowserTimeout": 1 |
Cantidad máxima de tiempo (en segundos) para esperar a que la aplicación esté lista antes de iniciar el explorador (solo Docker Compose). |
Dirección URL | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
Esta dirección URL se usa al iniciar el explorador. Los tokens de reemplazo admitidos para esta cadena son: - {Scheme} : se reemplaza por http o https , en función de si se usa SSL. - {ServiceHost} - Normalmente se reemplaza por localhost . Cuando el destino son los contenedores de Windows en Windows 10 RS3 o versiones anteriores, se reemplaza por la dirección IP del contenedor. - {ServicePort} : normalmente se reemplaza por sslPort o httpPort, en función de si se usa SSL. Cuando el destino son los contenedores de Windows en Windows 10 RS3 o versiones anteriores, se reemplaza por " 443 " o "80 ", en función de si se usa SSL. |
Publicación de todos los puertos | publishAllPorts | "publishAllPorts": true |
Si es true, pase -P a docker run , lo que publica todos los puertos expuestos a un puerto aleatorio. Consulte Documentación de Docker. Pero, al especificar sslPort , Visual Studio sigue pasando -p 5002:443 , por lo que el servicio debe seguir escuchando en el puerto 5002. |
Puerto Ssl | sslPort | "sslPort": 44381 |
Este puerto del host se asigna al puerto 443 del contenedor al iniciar el contenedor. |
N/D | useSSL | "useSSL": true |
Indica si se debe usar SSL al iniciar el proyecto. Si no se especifica useSSL , se usa SSL cuando sslPort > 0 . |
No todas las opciones están disponibles en la interfaz de usuario, por ejemplo, useSSL
. Para cambiar esa configuración, edite launchSettings.json
directamente.
La configuración DockerfileRunArguments
se superpone en Visual Studio 2022 17.12 y versiones posteriores mediante containerRunArguments
, que se puede establecer en la interfaz de usuario de perfiles de inicio como Container run arguments
.
Nota:
Si se encuentra la misma configuración en el archivo del proyecto y en el archivo de configuración de inicio, el valor del archivo de configuración de inicio tiene prioridad.
Pasos siguientes
Configure el proyecto estableciendo las propiedades de compilación las herramientas de contenedor.