ASP.NET Core 프로젝트의 속성 폴더에서 개발 컴퓨터에서 웹앱을 시작하는 방법을 제어하는 설정이 포함된 launchSettings.json 파일을 찾을 수 있습니다. 이 파일이 ASP.NET 개발에 사용되는 방법에 대한 자세한 내용은 ASP.NET Core여러 환경 사용을 참조하세요.
이 파일을 직접 편집할 수 있지만 Visual Studio IDE에서는 UI를 통해 이 파일의 속성을 편집할 수도 있습니다. 시작 옵션 옆에 있는 드롭다운 목록(예: Docker 또는 .NET SDK)을 선택한 다음, 단일 컨테이너 프로젝트에 디버그 속성을 선택합니다.
Docker Compose의 경우 docker Compose 시작 설정 관리하고 Compose 서비스 하위 집합을 시작하는 것을 참조하세요.
launchSettings.jsonDocker 섹션의 설정은 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
}
Docker 및 Podman 컨테이너 런타임 모두에 대해 작동하지만 "Container (Dockerfile)" Podman을 사용하려는 경우 더 정확한 Podman을 사용할 "Docker (Dockerfile)"수도 있습니다.
commandName 설정은 이 섹션이 Container Tools에 적용된다는 것을 식별합니다.
Dockerfile을 사용하든, .NET SDK의 기본 제공 컨테이너 빌드 지원을 사용하든(.NET 7 이상에서 사용 가능) launchSettings.json 대부분의 설정을 사용할 수 있으며 적용할 수 있습니다.
다음 표에서는 이 섹션에서 설정할 수 있는 속성을 보여줍니다.
| 디버그 프로필 UI의 속성 | launchSettings.json 이름 설정 | 본보기 | 묘사 |
|---|---|---|---|
| 명령줄 인수 | commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
앱을 시작하기 위한 이러한 명령줄 인수는 컨테이너에서 프로젝트를 시작할 때 사용됩니다. |
| 컨테이너 실행 인수 | containerRunArguments ContainerRunArguments |
"containerRunArguments": "-l mylabel=value" |
docker run 명령에 전달할 추가 인수입니다. (Visual Studio 17.12 이상에서는 소문자 버전을 사용합니다. 대문자 버전은 Visual Studio 17.9에서 도입되었으며 이전 버전과의 호환성을 위해 제공됩니다.) 다음과 같은 대체 토큰을 사용할 수 있습니다. - {ProjectDir} - 프로젝트 디렉터리의 전체 경로입니다. - {OutDir} - MSBuild 속성 OutDir의 값입니다. |
| 해당(N/A) | DockerfileRunArguments | dockerfileRunArguments": "-l mylabel=value" |
containerRunArguments마찬가지로 Dockerfile 빌드 형식을 사용하는 프로젝트에만 해당합니다. Visual Studio 17.12 이상에서는 대신 containerRunArguments 사용하는 것이 좋습니다. |
| 환경 변수 | 환경 변수 |
"environmentVariables": {: "ASPNETCORE_HTTPS_PORT": "44381" } |
이러한 환경 변수 값은 컨테이너에서 시작될 때 프로세스에 전달됩니다. |
| 컨테이너 이름 | 컨테이너이름 | mycontainer |
(17.12 이상) 정규식 [a-zA-Z0-9][a-zA-Z0-9_.-]일치하는 컨테이너의 이름입니다. |
| 컨테이너 환경 파일 | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 이상) 세미콜론으로 구분된 환경 변수 파일(.env 파일) 목록입니다. .env 파일 구문 참조하세요. |
| HTTP 포트 | http포트 | "httpPort": 24051 |
호스트의 이 포트는 컨테이너를 시작할 때 컨테이너의 포트 80에 매핑됩니다. |
| 브라우저 시작 | 브라우저실행 | "launchBrowser": true |
프로젝트를 성공적으로 시작한 후 브라우저를 시작할지 여부를 나타냅니다. |
| 해당(N/A) | launchBrowserTimeout | "launchBrowserTimeout": 1 |
브라우저를 시작하기 전에 앱이 준비될 때까지 기다리는 최대 시간(초)입니다(Docker Compose만 해당). |
| URL | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
이 URL은 브라우저를 시작할 때 사용됩니다. 이 문자열에 지원되는 대체 토큰은 다음과 같습니다. - {Scheme} - SSL 사용 여부에 따라 http 또는 https바뀝니다. - {ServiceHost} - 일반적으로 localhost. 하지만 Windows 10 RS3 이상에서 Windows 컨테이너를 대상으로 하는 경우 컨테이너의 IP로 바뀝니다. - {ServicePort} - 일반적으로 SSL 사용 여부에 따라 sslPort 또는 httpPort로 바뀝니다. 하지만 Windows 10 RS3 이상의 Windows 컨테이너를 대상으로 하는 경우 SSL 사용 여부에 따라 443 또는 80바뀝니다. |
| 모든 포트 게시 | publishAllPorts | "publishAllPorts": true |
true이면 노출된 모든 포트를 임의 포트에 게시하는 -Pdocker run 전달합니다.
Docker 설명서참조하세요. 그러나 sslPort지정하면 Visual Studio는 여전히 -p 5002:443전달하므로 서비스는 포트 5002에서 계속 수신 대기해야 합니다. |
| SSL 포트 | sslPort | "sslPort": 44381 |
호스트의 이 포트는 컨테이너를 시작할 때 컨테이너의 포트 443에 매핑됩니다. |
| 해당(N/A) | useSSL | "useSSL": true |
프로젝트를 시작할 때 SSL을 사용할지 여부를 나타냅니다.
useSSL 지정되지 않은 경우 sslPort > 0때 SSL이 사용됩니다. |
UI에서 모든 설정을 사용할 수 있는 것은 아닙니다(예: useSSL). 이러한 설정을 변경하려면 launchSettings.json 직접 편집합니다.
이 설정 DockerfileRunArguments 은 Visual Studio 2022 17.12 이상 containerRunArguments에서 대체되며, 이 설정은 프로필 시작 UI에서 다음과 같이 Container run arguments설정할 수 있습니다.
메모
프로젝트 파일과 시작 설정 파일 모두에서 동일한 설정이 발견되면 시작 설정 파일의 값이 우선합니다.
| 디버그 프로필 UI의 속성 | launchSettings.json 이름 설정 | 본보기 | 묘사 |
|---|---|---|---|
| 명령줄 인수 | commandLineArgs | "commandLineArgs": "--mysetting myvalue" |
앱을 시작하기 위한 이러한 명령줄 인수는 컨테이너에서 프로젝트를 시작할 때 사용됩니다. |
| 컨테이너 실행 인수 | containerRunArguments ContainerRunArguments |
"containerRunArguments": "-l mylabel=value" |
또는 docker run 명령에 전달할 podman run 추가 인수입니다. (Visual Studio 17.12 이상에서는 소문자 버전을 사용합니다. 대문자 버전은 Visual Studio 17.9에서 도입되었으며 이전 버전과의 호환성을 위해 제공됩니다.) 다음과 같은 대체 토큰을 사용할 수 있습니다. - {ProjectDir} - 프로젝트 디렉터리의 전체 경로입니다. - {OutDir} - MSBuild 속성 OutDir의 값입니다. |
| 해당(N/A) | DockerfileRunArguments | "dockerfileRunArguments": "-l mylabel=value" |
containerRunArguments마찬가지로 Dockerfile 빌드 형식을 사용하는 프로젝트에만 해당합니다. 대신 사용하는 containerRunArguments 것이 좋습니다. |
| 환경 변수 | 환경 변수 |
"environmentVariables": {: "ASPNETCORE_HTTPS_PORT": "44381" } |
이러한 환경 변수 값은 컨테이너에서 시작될 때 프로세스에 전달됩니다. |
| 실행 파일 경로 | executablePath |
"executablePath": "myprogram.exe" |
디버깅할 때 디버거는 이 실행 파일을 시작하도록 지시됩니다. |
| 컨테이너 이름 | 컨테이너이름 | mycontainer |
(17.12 이상) 정규식 [a-zA-Z0-9][a-zA-Z0-9_.-]일치하는 컨테이너의 이름입니다. |
| 컨테이너 환경 파일 | containerRunEnvironmentFiles | "containerRunEnvironmentFiles": "abc.env;xyz.env" |
(17.12 이상) 세미콜론으로 구분된 환경 변수 파일(.env 파일) 목록입니다. .env 파일 구문 참조하세요. |
| HTTP 포트 | http포트 | "httpPort": 24051 |
호스트의 이 포트는 컨테이너를 시작할 때 컨테이너의 HTTP 포트에 매핑됩니다. 환경 변수를 ASPNETCORE_URLS사용하여 포트를 지정하지 않는 한 컨테이너 포트 80이 ASPNETCORE_HTTP_PORTS 사용됩니다. |
| 브라우저 시작 | 브라우저실행 | "launchBrowser": true |
프로젝트를 성공적으로 시작한 후 브라우저를 시작할지 여부를 나타냅니다. |
| 해당(N/A) | launchBrowserTimeout | "launchBrowserTimeout": 1 |
브라우저를 시작하기 전에 앱이 준비될 때까지 기다리는 최대 시간(초)입니다(Docker Compose만 해당). |
| URL | launchUrl | "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}" |
이 URL은 브라우저를 시작할 때 사용됩니다. 이 문자열에 지원되는 대체 토큰은 다음과 같습니다. - {Scheme} - SSL 사용 여부에 따라 http 또는 https바뀝니다. - {ServiceHost} - 일반적으로 localhost. 하지만 Windows 10 RS3 이상에서 Windows 컨테이너를 대상으로 하는 경우 컨테이너의 IP로 바뀝니다. - {ServicePort} - 일반적으로 SSL 사용 여부에 따라 sslPort 또는 httpPort로 바뀝니다. 하지만 Windows 10 RS3 이상에서 Windows 컨테이너를 대상으로 하는 경우 환경 변수 ASPNETCORE_URLS 에 지정된 HTTP 또는 HTTPS 포트로 대체되고 ASPNETCORE_HTTP_PORTS, 설정되지 않은 경우 HTTP의 경우 80, HTTPS의 경우 443으로 바뀝니다. |
| 모든 포트 게시 | publishAllPorts | "publishAllPorts": true |
true이면 노출된 모든 포트를 임의 포트에 게시하는 -Pdocker run 전달합니다.
Docker 설명서참조하세요. 그러나 sslPort지정하면 Visual Studio는 여전히 -p 5002:443전달하므로 서비스는 포트 5002에서 계속 수신 대기해야 합니다. |
| SSL 포트 | sslPort | "sslPort": 44381 |
호스트의 이 포트는 컨테이너를 시작할 때 컨테이너의 HTTPS 포트에 매핑됩니다. 환경 변수를 ASPNETCORE_URLS사용하여 포트를 지정하지 않는 한 컨테이너 포트 443이 ASPNETCORE_HTTP_PORTS 사용됩니다. |
| 해당(N/A) | useSSL | "useSSL": true |
프로젝트를 시작할 때 SSL을 사용할지 여부를 나타냅니다.
useSSL 지정되지 않은 경우 sslPort > 0때 SSL이 사용됩니다. |
| 작업 디렉터리 | 작업 디렉터리 | "workingDirectory": "c:\path\to\folder" |
디버깅할 때 디버거는 이 경로를 작업 디렉터리로 사용하도록 지시됩니다. |
UI에서 모든 설정을 사용할 수 있는 것은 아닙니다(예: useSSL). 이러한 설정을 변경하려면 launchSettings.json 직접 편집합니다.
시작 containerRunArguments 프로필 UI에서 로 Container run arguments설정할 수 있습니다. 사용되지 않는 MSBuild 속성 DockerfileRunArguments과 동일합니다.
메모
프로젝트 파일과 시작 설정 파일 모두에서 동일한 설정이 발견되면 시작 설정 파일의 값이 우선합니다.
다음 단계
Container Tools 빌드 속성을설정하여 프로젝트를 구성합니다.
참고 항목
- docker Compose 빌드 속성
- Docker Compose 대한 시작 프로필 관리