다음을 통해 공유


Compose 서비스의 하위 집합 시작

여러 서비스로 구성되고 Docker Compose를 사용하는 애플리케이션이 있는 경우 Docker Compose 시작 설정에서 기존 시작 프로필을 만들거나 편집하여 실행 및 디버그할 서비스를 구성할 수 있습니다. 시작 프로필을 사용하면 현재 시나리오에 중요한 서비스만 동적으로 실행할 수 있습니다. 디버깅 환경을 사용자 지정하고 Browser Launch URL같은 특정 시작 작업을 설정하기 위해 시작 프로필에서 만들고 선택할 수 있습니다. 또한 각 서비스를 개별적으로 선택하거나 Docker Compose 프로필을 선택하여 Compose 파일을 확인하여 실행할 서비스 그룹을 결정할 수도 있습니다.

Docker Compose 프로필에 대한 자세한 내용은 Compose와 함께 프로필 사용하기를 참조하세요.

필수 구성 요소

시작 설정 관리

docker-compose.yml 5개의 서비스와 3개의 Compose 프로필(웹, web1 및 web2)이 있는 다음 Docker Compose 프로젝트를 고려합니다.

version: '3.9'

services:
  webapplication1:
    image: ${DOCKER_REGISTRY-}webapplication1
    profiles: [web, web1]
    build:
      context: .
      dockerfile: WebApplication1/Dockerfile

  webapplication2:
    image: ${DOCKER_REGISTRY-}webapplication2
    profiles: [web, web2]
    build:
      context: .
      dockerfile: WebApplication2/Dockerfile

  webapplication3:
    image: ${DOCKER_REGISTRY-}webapplication3
    profiles: [web]
    build:
      context: .
      dockerfile: WebApplication3/Dockerfile

  external1:
    image: redis

  external2:
    image: redis

Docker Compose 시작 설정 대화 상자를 여는 몇 가지 옵션이 있습니다.

  • Visual Studio에서 디버그>Docker 작성 시작 설정 관리선택합니다.

    디버그 작성 설정 관리 메뉴 항목의 스크린샷

    디버그 작성 설정 관리 메뉴 항목의 스크린샷

  • Visual Studio docker-compose 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Docker Compose 시작 설정 관리를 선택하십시오.

    상황에 맞는 메뉴 항목 스크린샷

    상황에 맞는 메뉴 항목 스크린샷

  • 빠른 실행(Ctrl+Q)을 사용하고 Docker Compose 검색하여 동일한 명령을 찾습니다.

아래 예제에서는 web1 작성 프로필이 선택되어 Services 목록을 해당 프로필에 포함된 5개 중 3개만 필터링합니다.

메모

Docker Compose 프로필 섹션은 docker-compose.yml 파일에 정의된 프로필이 있는 경우에만 표시됩니다.

다음 예제에서는 Compose 프로필의 서비스로 필터링하는 대신 개별 서비스 중에서 선택하는 방법을 보여 줍니다. 여기에서는 test2이라는 새 시작 프로필을 만들어 5개 서비스 중 디버깅과 함께 webapplication1 및 디버깅 없이 webapplication2 두 개 서비스를 시작할 경우 대화 상자가 어떻게 표시되는지를 보여줍니다. 또한 이 시작 프로필은 애플리케이션이 시작될 때 브라우저를 실행하고 webapplication1홈페이지로 엽니다.

일부 서비스가 선택 취소된 시작 설정 대화 상자의 스크린샷

그리고 이 정보는 아래와 같이 launchSettings.json 저장됩니다.

{
    "profiles": {
      "test2": {
        "commandName": "DockerCompose",
        "composeLaunchServiceName": "webapplication1",
        "serviceActions": {
          "external1": "DoNotStart",
          "external2": "DoNotStart",
          "webapplication1": "StartDebugging",
          "webapplication2": "StartWithoutDebugging",
          "webapplication3": "DoNotStart"
        },
        "composeLaunchAction": "LaunchBrowser",
        "commandVersion": "1.0",
        "composeLaunchUrl": "{Scheme}://localhost:{ServicePort}"
      }
   }
}

Docker Compose 프로필을 사용하는 시작 프로필 만들기

Compose 프로필을 사용하는 Visual Studio 시작 프로필을 만들어 시작 동작을 추가로 사용자 지정할 수도 있습니다.

Compose 프로필을 사용하는 다른 프로필을 만들려면 Docker Compose 프로필 사용하고 web1선택합니다. 이제 시작 프로필에는 webapplication1(webweb1 작성 프로필 모두에 속함), external1external2세 가지 서비스가 포함됩니다. 기본적으로 external1external2 같은 소스 코드가 없는 서비스에는 디버깅하지 않고시작의 기본 작업이 있습니다. 소스 코드가 있는 .NET 애플리케이션은 기본적으로 디버깅 시작.

중요하다

서비스에서 Compose 프로필을 지정하지 않으면 모든 Compose 프로필에 암시적으로 포함됩니다.

다른 프로필이 생성된 시작 설정 대화 상자의 스크린샷

이 정보는 다음 코드와 같이 저장됩니다. 기본 작업을 변경하지 않는 한 서비스 및 기본 작업에 대한 구성은 저장되지 않습니다.

{
  "profiles": {
    "test1": {
      "commandName": "DockerCompose",
      "composeProfile": {
         "includes": [
            "web1"
         ]
      },
      "commandVersion": "1.0"
    }
  }
}

디버깅하지 않고 webapplication1의 작업을시작으로 변경할 수도 있습니다. launchSettings.json 설정은 다음 코드와 같습니다.

{
  "profiles": {
    "test1": {
        "commandName": "DockerCompose",
        "composeProfile": {
          "includes": [
              "web1"
              ],
          "serviceActions": {
              "webapplication1": "StartWithoutDebugging"
          }
        },
    "commandVersion": "1.0"
    }
  }
}

속성

launchSettings.json각 속성에 대한 설명은 다음과 같습니다.

재산 묘사
commandName 명령의 이름입니다. 기본값은 "DockerCompose"입니다.
명령버전 DockerCompose 시작 프로필의 스키마를 관리하는 데 사용되는 버전 번호입니다.
프로필 작성 시작 프로필 정의를 정의하는 부모 속성입니다. 자식 속성은 includesserviceActions입니다.
composeProfile - 포함 시작 프로필을 구성하는 Compose 프로필 이름 목록입니다.
프로필 작성 - 서비스 액션 선택한 Compose 프로필, 서비스 및 각 서비스의 시작 작업을 나열합니다.
serviceActions 선택한 서비스 및 시작 작업을 나열합니다.
composeLaunchAction F5 또는 Ctrl+F5수행할 시작 작업을 지정합니다. 허용되는 값은 None, LaunchBrowser 및 LaunchWCFTestClient입니다.
URL생성시작 브라우저를 시작할 때 사용할 URL입니다. 유효한 대체 토큰은 "{ServiceIPAddress}", "{ServicePort}" 및 "{Scheme}"입니다. 예: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName composeLaunchUrl에서 토큰을 바꾸는 데 사용되는 서비스를 지정합니다.