Partager via


Paramètres de lancement des outils de conteneur

Dans le dossier Propriétés dans un projet ASP.NET Core, vous trouverez le fichier launchSettings.json, qui contient des paramètres qui contrôlent le démarrage de votre application web sur votre ordinateur de développement. Pour plus d’informations sur l’utilisation de ce fichier dans ASP.NET développement, consultez Utiliser plusieurs environnements dans ASP.NET Core.

Vous pouvez modifier ce fichier directement, mais dans l’IDE Visual Studio, vous pouvez également modifier les propriétés de ce fichier via l’interface utilisateur. Choisissez la liste déroulante en regard de l’option de lancement (par exemple, Docker ou .NET SDK), puis choisissez Propriétés de débogage pour un projet à conteneur unique.

Capture d’écran de la boîte de dialogue lancer le profil, montrant les paramètres de lancement d’un profil de lancement de conteneur.

Pour Docker Compose, choisissez Gérer les paramètres de lancement de Docker Compose, puis consultez Lancer un sous-ensemble de services de composition.

Dans launchSettings.json, les paramètres de la section Docker sont liés à la façon dont Visual Studio gère les applications conteneurisées.

    "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
    }
    "Docker (Dockerfile)": {
      "commandName": "Docker",
      "launchBrowser": true,
      "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
      "environmentVariables": {
        "ASPNETCORE_HTTPS_PORTS": "8081",
        "ASPNETCORE_HTTP_PORTS": "8080"
      },
      "publishAllPorts": true,
      "useSSL": true
    }

Vous pouvez également utiliser "Container (Dockerfile)", ce qui est plus précis si vous souhaitez utiliser Podman, bien que "Docker (Dockerfile)" fonctionne pour les runtimes de conteneur Docker et Podman.

Le paramètre commandName identifie que cette section s’applique à Container Tools.

La plupart des paramètres de launchSettings.json sont disponibles et applicables, que vous utilisiez un fichier Dockerfile ou que vous utilisiez la prise en charge intégrée du kit sdk .NET (disponible pour .NET 7 et versions ultérieures).

Le tableau suivant montre les propriétés qui peuvent être définies dans cette section :

Propriété dans l’interface utilisateur du profil de débogage Définition du nom dans launchSettings.json Exemple Descriptif
Arguments de ligne de commande commandLineArgs "commandLineArgs": "--mysetting myvalue" Ces arguments de ligne de commande pour démarrer votre application sont utilisés lors du lancement de votre projet dans le conteneur.
Arguments d’exécution de conteneur containerRunArguments
ContainerRunArguments
"containerRunArguments": "-l mylabel=value" Arguments supplémentaires à passer à la commande docker run.

(Utilisez la version minuscule dans Visual Studio 17.12 et versions ultérieures. La version majuscule a été introduite dans Visual Studio 17.9 et est fournie pour la compatibilité descendante.)

Vous pouvez utiliser les jetons de remplacement suivants :

- {ProjectDir} : chemin d’accès complet au répertoire du projet.

- {OutDir} : valeur de la propriété MSBuild OutDir.
N/A DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" Comme containerRunArguments, mais uniquement pour les projets qui utilisent le type de build Dockerfile. Pour Visual Studio 17.12 et versions ultérieures, il est recommandé d’utiliser containerRunArguments à la place.
Variables d’environnement variables d'environnement "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Ces valeurs de variable d’environnement sont transmises au processus lorsqu’elles sont lancées dans le conteneur.
Nom du conteneur NomDuConteneur mycontainer (17.12 et versions ultérieures) Nom du conteneur correspondant à l’expression régulière [a-zA-Z0-9][a-zA-Z0-9_.-].
Fichiers d’environnement de conteneur containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 et versions ultérieures) Liste des fichiers de variables d’environnement (fichiers.env) séparés par des points-virgules. Consultez syntaxe de fichier .env.
HTTP Port httpPort "httpPort": 24051 Ce port sur l’hôte est mappé au port 80 du conteneur lors du lancement du conteneur.
Lancer le navigateur launchBrowser "launchBrowser": true Indique s’il faut lancer le navigateur après avoir lancé le projet.
N/A launchBrowserTimeout "launchBrowserTimeout": 1 Durée maximale (en secondes) d’attente de la préparation de l’application avant de lancer le navigateur (Docker Compose uniquement).
URL launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Cette URL est utilisée lors du lancement du navigateur. Les jetons de remplacement pris en charge pour cette chaîne sont les suivants :

- {Scheme} - Remplacé par http ou https, selon que SSL est utilisé.

- {ServiceHost} - Généralement remplacé par localhost.
Quand vous ciblez des conteneurs Windows sur Windows 10 RS3 ou version antérieure, il est remplacé par l’adresse IP du conteneur.

- {ServicePort} : généralement remplacé par sslPort ou httpPort, selon que SSL est utilisé.
Lorsque vous ciblez des conteneurs Windows sur Windows 10 RS3 ou version antérieure, il est remplacé par 443 ou 80, selon que SSL est utilisé.
Publier tous les ports publishAllPorts "publishAllPorts": true Si la valeur est true, passez -P à docker run, qui publie tous les ports exposés sur un port aléatoire. Consultez documentation Docker. Toutefois, lorsque vous spécifiez sslPort, Visual Studio passe toujours -p 5002:443, de sorte que votre service doit toujours être à l’écoute sur le port 5002.
SSL Port sslPort "sslPort": 44381 Ce port sur l’hôte est mappé au port 443 du conteneur lors du lancement du conteneur.
N/A useSSL "useSSL": true Indique s’il faut utiliser SSL lors du lancement du projet. Si useSSL n’est pas spécifié, SSL est utilisé quand sslPort > 0.

Tous les paramètres ne sont pas disponibles dans l’interface utilisateur, par exemple, useSSL. Pour modifier ces paramètres, modifiez launchSettings.json directement.

Le paramètre DockerfileRunArguments est remplacé dans Visual Studio 2022 17.12 et ultérieur par containerRunArguments, qui peut être défini dans l’interface utilisateur Des profils de lancement en tant que Container run arguments.

Remarque

Si le même paramètre se trouve dans le fichier projet et dans le fichier de paramètres de lancement, la valeur du fichier de paramètres de lancement est prioritaire.

Propriété dans l’interface utilisateur du profil de débogage Définition du nom dans launchSettings.json Exemple Descriptif
Arguments de ligne de commande commandLineArgs "commandLineArgs": "--mysetting myvalue" Ces arguments de ligne de commande pour démarrer votre application sont utilisés lors du lancement de votre projet dans le conteneur.
Arguments d’exécution de conteneur containerRunArguments
ContainerRunArguments
"containerRunArguments": "-l mylabel=value" Arguments supplémentaires à passer à la ou docker run à la podman run commande.

(Utilisez la version minuscule dans Visual Studio 17.12 et versions ultérieures. La version majuscule a été introduite dans Visual Studio 17.9 et est fournie pour la compatibilité descendante.)

Vous pouvez utiliser les jetons de remplacement suivants :

- {ProjectDir} : chemin d’accès complet au répertoire du projet.

- {OutDir} : valeur de la propriété MSBuild OutDir.
N/A DockerfileRunArguments "dockerfileRunArguments": "-l mylabel=value" Comme containerRunArguments, mais uniquement pour les projets qui utilisent le type de build Dockerfile. Il est recommandé d’utiliser containerRunArguments à la place.
Variables d’environnement variables d'environnement "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Ces valeurs de variable d’environnement sont transmises au processus lorsqu’elles sont lancées dans le conteneur.
Chemin d’accès exécutable executablePath "executablePath": "myprogram.exe" Lors du débogage, le débogueur est invité à lancer cet exécutable.
Nom du conteneur NomDuConteneur mycontainer (17.12 et versions ultérieures) Nom du conteneur correspondant à l’expression régulière [a-zA-Z0-9][a-zA-Z0-9_.-].
Fichiers d’environnement de conteneur containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 et versions ultérieures) Liste des fichiers de variables d’environnement (fichiers.env) séparés par des points-virgules. Consultez syntaxe de fichier .env.
HTTP Port httpPort "httpPort": 24051 Ce port sur l’hôte est mappé au port HTTP du conteneur lors du lancement du conteneur. Le port de conteneur 80 est utilisé, sauf si vous spécifiez des ports à l’aide des variables ASPNETCORE_URLS d’environnement et ASPNETCORE_HTTP_PORTS.
Lancer le navigateur launchBrowser "launchBrowser": true Indique s’il faut lancer le navigateur après avoir lancé le projet.
N/A launchBrowserTimeout "launchBrowserTimeout": 1 Durée maximale (en secondes) d’attente de la préparation de l’application avant de lancer le navigateur (Docker Compose uniquement).
URL launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Cette URL est utilisée lors du lancement du navigateur. Les jetons de remplacement pris en charge pour cette chaîne sont les suivants :

- {Scheme} - Remplacé par http ou https, selon que SSL est utilisé.

- {ServiceHost} - Généralement remplacé par localhost.
Quand vous ciblez des conteneurs Windows sur Windows 10 RS3 ou version antérieure, il est remplacé par l’adresse IP du conteneur.

- {ServicePort} : généralement remplacé par sslPort ou httpPort, selon que SSL est utilisé.
Toutefois, lorsque vous ciblez des conteneurs Windows sur Windows 10 RS3 ou version antérieure, il est remplacé par le port HTTP ou HTTPS spécifié par les variables ASPNETCORE_URLS d’environnement et ASPNETCORE_HTTP_PORTS, ou 80 pour HTTP et 443 pour HTTPS s’il n’est pas défini.
Publier tous les ports publishAllPorts "publishAllPorts": true Si la valeur est true, passez -P à docker run, qui publie tous les ports exposés sur un port aléatoire. Consultez documentation Docker. Toutefois, lorsque vous spécifiez sslPort, Visual Studio passe toujours -p 5002:443, de sorte que votre service doit toujours être à l’écoute sur le port 5002.
SSL Port sslPort "sslPort": 44381 Ce port sur l’hôte est mappé au port HTTPS du conteneur lors du lancement du conteneur. Le port de conteneur 443 est utilisé, sauf si vous spécifiez des ports à l’aide des variables ASPNETCORE_URLS d’environnement et ASPNETCORE_HTTP_PORTS.
N/A useSSL "useSSL": true Indique s’il faut utiliser SSL lors du lancement du projet. Si useSSL n’est pas spécifié, SSL est utilisé quand sslPort > 0.
Répertoire de travail workingDirectory "workingDirectory": "c:\path\to\folder" Lors du débogage, le débogueur est invité à utiliser ce chemin comme répertoire de travail.

Tous les paramètres ne sont pas disponibles dans l’interface utilisateur, par exemple, useSSL. Pour modifier ces paramètres, modifiez launchSettings.json directement.

Il containerRunArguments peut être défini dans l’interface utilisateur des profils de lancement en tant que Container run arguments. Elle équivaut à la propriété DockerfileRunArgumentsMSBuild obsolète .

Remarque

Si le même paramètre se trouve dans le fichier projet et dans le fichier de paramètres de lancement, la valeur du fichier de paramètres de lancement est prioritaire.

Étapes suivantes

Configurez votre projet en définissant les propriétés de build Container Tools.

Voir aussi