Udostępnij przez


Ustawienia uruchamiania narzędzi kontenera

W folderze Właściwości w projekcie ASP.NET Core można znaleźć launchSettings.json plik zawierający ustawienia kontrolujące sposób uruchamiania aplikacji internetowej na maszynie dewelopera. Aby uzyskać szczegółowe informacje na temat sposobu używania tego pliku w programowaniu ASP.NET, zobacz Używanie wielu środowisk w programie ASP.NET Core.

Ten plik można edytować bezpośrednio, ale w środowisku IDE programu Visual Studio można również edytować właściwości w tym pliku za pomocą interfejsu użytkownika. Wybierz listę rozwijaną obok opcji uruchamiania (na przykład Docker lub .NET SDK), a następnie wybierz pozycję Właściwości debugowania dla projektu pojedynczego kontenera.

Zrzut ekranu przedstawiający okno dialogowe uruchamiania profilu z ustawieniami uruchamiania dla profilu uruchamiania kontenera.

W obszarze Docker Compose wybierz pozycję Zarządzaj ustawieniami uruchamiania narzędzia Docker Compose i zobacz Uruchamianie podzbioru usług redagowania.

W launchSettings.jsonustawienia w sekcji Platformy Docker są powiązane ze sposobem obsługi konteneryzowanych aplikacji przez program Visual Studio.

    "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
    }

Można również użyć metody "Container (Dockerfile)", która jest dokładniejsza, jeśli chcesz użyć narzędzia Podman, chociaż "Docker (Dockerfile)" działa zarówno w środowiskach uruchomieniowych kontenerów Platformy Docker, jak i Podman.

Ustawienie commandName identyfikuje, że ta sekcja ma zastosowanie do narzędzi kontenera.

Większość ustawień w programie launchSettings.json jest dostępna i ma zastosowanie niezależnie od tego, czy używasz pliku Dockerfile, czy wbudowanej obsługi kompilacji kontenera zestawu .NET SDK (dostępnej dla platformy .NET 7 lub nowszej).

W poniższej tabeli przedstawiono właściwości, które można ustawić w tej sekcji:

Właściwość w interfejsie użytkownika profilu debugowania Nazwa ustawienia w launchSettings.json Przykład Opis
Argumenty wiersza polecenia argumenty wiersza poleceń "commandLineArgs": "--mysetting myvalue" Te argumenty wiersza polecenia do uruchamiania aplikacji są używane podczas uruchamiania projektu w kontenerze.
Argumenty uruchamiania kontenera containerRunArguments
ContainerRunArguments
"containerRunArguments": "-l mylabel=value" Dodatkowe argumenty do przekazania do docker run polecenia.

(Użyj małej litery w programie Visual Studio 17.12 lub nowszym. Wersja z wielką literą została wprowadzona w programie Visual Studio 17.9 i jest udostępniana w celu zapewnienia zgodności z poprzednimi wersjami).

Możesz użyć następujących tokenów zastępczych:

- {ProjectDir} - Pełna ścieżka do katalogu projektu.

- {OutDir} - Wartość właściwości MSBuild OutDir.
N/A DockerfileRunArguments dockerfileRunArguments": "-l mylabel=value" Podobnie jak containerRunArguments, ale tylko w przypadku projektów korzystających z typu kompilacji Dockerfile. W przypadku programu Visual Studio 17.12 lub nowszego zaleca się zamiast tego użyć containerRunArguments polecenia .
Zmienne środowiskowe zmienne środowiskowe "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Te wartości zmiennych środowiskowych są przekazywane do procesu po uruchomieniu w kontenerze.
Nazwa kontenera nazwaKontenera mycontainer (17.12 i nowsze) Nazwa kontenera pasującego do wyrażenia [a-zA-Z0-9][a-zA-Z0-9_.-]regularnego .
Pliki środowiska kontenera containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 i nowsze) Lista plików zmiennych środowiskowych (.env plików) rozdzielonych średnikami. Zobacz składnię pliku env.
HTTP Port Protokół httpPort "httpPort": 24051 Ten port na hoście jest mapowany na port 80 kontenera podczas uruchamiania kontenera.
Uruchamianie przeglądarki uruchomPrzeglądarkę "launchBrowser": true Wskazuje, czy należy uruchomić przeglądarkę po pomyślnym uruchomieniu projektu.
N/A launchBrowserTimeout "launchBrowserTimeout": 1 Maksymalny czas (w sekundach) oczekiwania na przygotowanie aplikacji przed uruchomieniem przeglądarki (tylko narzędzie Docker Compose).
adres URL launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Ten adres URL jest używany podczas uruchamiania przeglądarki. Obsługiwane tokeny zastępcze dla tego ciągu to:

- {Scheme} — Zastąpiono elementem http lub https, w zależności od tego, czy jest używany protokół SSL.

- {ServiceHost} — Zwykle zastąpione ciągiem localhost.
Jednak w przypadku określania kontenerów systemu Windows w systemie Windows 10 RS3 lub starszym jest on zastępowany adresem IP kontenera.

- {ServicePort} — Zwykle zastąpiono ciągiem sslPort lub httpPort, w zależności od tego, czy jest używany protokół SSL.
Jednak w przypadku określania kontenerów systemu Windows w systemie Windows 10 RS3 lub starszym jest on zastępowany ciągiem 443 lub 80, w zależności od tego, czy jest używany protokół SSL.
Publikowanie wszystkich portów publishAllPorts "publishAllPorts": true Jeśli wartość true, przekaż -P element do docker runelementu , który publikuje wszystkie uwidocznione porty na losowym porcie. Zobacz dokumentację platformy Docker. Jednak po określeniu parametru sslPortprogram Visual Studio nadal przekazuje -p 5002:443wartość , więc usługa powinna nadal nasłuchiwać na porcie 5002.
SSL Port sslPort "sslPort": 44381 Ten port na hoście jest mapowany na port 443 kontenera podczas uruchamiania kontenera.
N/A useSSL "useSSL": true Wskazuje, czy podczas uruchamiania projektu należy używać protokołu SSL. Jeśli useSSL nie zostanie określony, protokół SSL jest używany w przypadku sslPort > 0.

Nie wszystkie ustawienia są dostępne w interfejsie użytkownika, na przykład useSSL. Aby zmienić te ustawienia, edytuj launchSettings.json bezpośrednio.

Ustawienie DockerfileRunArguments zostało zastąpione w programie Visual Studio 2022 w wersji 17.12 lub nowszej za pomocą containerRunArgumentspolecenia , które można ustawić w interfejsie użytkownika uruchom profile jako Container run arguments.

Uwaga / Notatka

Jeśli to samo ustawienie zostanie znalezione zarówno w pliku projektu, jak i w pliku ustawień uruchamiania, pierwszeństwo ma wartość w pliku ustawień uruchamiania.

Właściwość w interfejsie użytkownika profilu debugowania Nazwa ustawienia w launchSettings.json Przykład Opis
Argumenty wiersza polecenia argumenty wiersza poleceń "commandLineArgs": "--mysetting myvalue" Te argumenty wiersza polecenia do uruchamiania aplikacji są używane podczas uruchamiania projektu w kontenerze.
Argumenty uruchamiania kontenera containerRunArguments
ContainerRunArguments
"containerRunArguments": "-l mylabel=value" Dodatkowe argumenty do przekazania do docker run polecenia lub podman run .

(Użyj małej litery w programie Visual Studio 17.12 lub nowszym. Wersja z wielką literą została wprowadzona w programie Visual Studio 17.9 i jest udostępniana w celu zapewnienia zgodności z poprzednimi wersjami).

Możesz użyć następujących tokenów zastępczych:

- {ProjectDir} - Pełna ścieżka do katalogu projektu.

- {OutDir} - Wartość właściwości MSBuild OutDir.
N/A DockerfileRunArguments "dockerfileRunArguments": "-l mylabel=value" Podobnie jak containerRunArguments, ale tylko w przypadku projektów korzystających z typu kompilacji Dockerfile. Zaleca się zamiast tego użycie containerRunArguments .
Zmienne środowiskowe zmienne środowiskowe "environmentVariables": {
"ASPNETCORE_URLS": "https://+:443;http://+:80",
"ASPNETCORE_HTTPS_PORT": "44381"
}
Te wartości zmiennych środowiskowych są przekazywane do procesu po uruchomieniu w kontenerze.
Ścieżka pliku wykonywalnego executablePath "executablePath": "myprogram.exe" Podczas debugowania debuger jest poinstruowany o uruchomieniu tego pliku wykonywalnego.
Nazwa kontenera nazwaKontenera mycontainer (17.12 i nowsze) Nazwa kontenera pasującego do wyrażenia [a-zA-Z0-9][a-zA-Z0-9_.-]regularnego .
Pliki środowiska kontenera containerRunEnvironmentFiles "containerRunEnvironmentFiles": "abc.env;xyz.env" (17.12 i nowsze) Lista plików zmiennych środowiskowych (.env plików) rozdzielonych średnikami. Zobacz składnię pliku env.
HTTP Port Protokół httpPort "httpPort": 24051 Ten port na hoście jest mapowany na port HTTP kontenera podczas uruchamiania kontenera. Używany jest port kontenera 80, chyba że określono porty przy użyciu zmiennych ASPNETCORE_URLS środowiskowych i ASPNETCORE_HTTP_PORTS.
Uruchamianie przeglądarki uruchomPrzeglądarkę "launchBrowser": true Wskazuje, czy należy uruchomić przeglądarkę po pomyślnym uruchomieniu projektu.
N/A launchBrowserTimeout "launchBrowserTimeout": 1 Maksymalny czas (w sekundach) oczekiwania na przygotowanie aplikacji przed uruchomieniem przeglądarki (tylko narzędzie Docker Compose).
adres URL launchUrl "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" Ten adres URL jest używany podczas uruchamiania przeglądarki. Obsługiwane tokeny zastępcze dla tego ciągu to:

- {Scheme} — Zastąpiono elementem http lub https, w zależności od tego, czy jest używany protokół SSL.

- {ServiceHost} — Zwykle zastąpione ciągiem localhost.
Jednak w przypadku określania kontenerów systemu Windows w systemie Windows 10 RS3 lub starszym jest on zastępowany adresem IP kontenera.

- {ServicePort} — Zwykle zastąpiono ciągiem sslPort lub httpPort, w zależności od tego, czy jest używany protokół SSL.
Jednak w przypadku określania wartości docelowych dla kontenerów systemu Windows w systemie Windows 10 RS3 lub starszym jest on zastępowany portem HTTP lub HTTPS określonym przez zmienne ASPNETCORE_URLS środowiskowe i ASPNETCORE_HTTP_PORTS, lub 80 dla protokołu HTTP i 443 dla protokołu HTTPS, jeśli nie jest ustawiona.
Publikowanie wszystkich portów publishAllPorts "publishAllPorts": true Jeśli wartość true, przekaż -P element do docker runelementu , który publikuje wszystkie uwidocznione porty na losowym porcie. Zobacz dokumentację platformy Docker. Jednak po określeniu parametru sslPortprogram Visual Studio nadal przekazuje -p 5002:443wartość , więc usługa powinna nadal nasłuchiwać na porcie 5002.
SSL Port sslPort "sslPort": 44381 Ten port na hoście jest mapowany na port HTTPS kontenera podczas uruchamiania kontenera. Używany jest port kontenera 443, chyba że określono porty przy użyciu zmiennych ASPNETCORE_URLS środowiskowych i ASPNETCORE_HTTP_PORTS.
N/A useSSL "useSSL": true Wskazuje, czy podczas uruchamiania projektu należy używać protokołu SSL. Jeśli useSSL nie zostanie określony, protokół SSL jest używany w przypadku sslPort > 0.
Katalog roboczy workingDirectory "workingDirectory": "c:\path\to\folder" Podczas debugowania debuger jest poinstruowany, aby używał tej ścieżki jako katalogu roboczego.

Nie wszystkie ustawienia są dostępne w interfejsie użytkownika, na przykład useSSL. Aby zmienić te ustawienia, edytuj launchSettings.json bezpośrednio.

Element containerRunArguments można ustawić w interfejsie użytkownika uruchom profile jako Container run arguments. Jest to odpowiednik przestarzałej właściwości DockerfileRunArgumentsMSBuild .

Uwaga / Notatka

Jeśli to samo ustawienie zostanie znalezione zarówno w pliku projektu, jak i w pliku ustawień uruchamiania, pierwszeństwo ma wartość w pliku ustawień uruchamiania.

Dalsze kroki

Skonfiguruj projekt, ustawiając właściwości kompilacji narzędzia Container Tools.

Zobacz także