다음을 통해 공유


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에서 디버그>도커 컴포즈 시작 설정 관리를 선택합니다.

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

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

  • Visual Studio docker-compose 프로젝트에서 오른쪽 클릭하여 Docker Compose 시작 설정 관리를 선택합니다.

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

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

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

아래 예제에서는 web1 작문 프로필이 선택되어, 이 프로필에 포함된 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세 가지 서비스가 포함됩니다. 기본적으로 같은 소스 코드가 없는 서비스에는디버깅하지 않고 시작의 기본 작업이 있습니다. 소스 코드가 있는 .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각 속성에 대한 설명은 다음과 같습니다.

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