Meluncurkan subset layanan Compose

Jika Anda memiliki aplikasi yang terdiri dari beberapa layanan dan menggunakan Docker Compose, Anda dapat mengonfigurasi layanan mana yang berjalan dan men-debug dengan membuat atau mengedit profil peluncuran yang ada di pengaturan peluncuran Docker Compose. Profil peluncuran memungkinkan Anda untuk secara dinamis menjalankan hanya layanan yang penting untuk kebutuhan Anda saat ini. Anda dapat membuat dan memilih dari profil startup untuk menyesuaikan pengalaman debugging Anda dan mengatur tindakan startup tertentu seperti Browser Launch URL. Anda juga memiliki opsi untuk memilih setiap layanan satu per satu atau dengan memilih profil Docker Compose, yang juga melihat file Compose Anda untuk menentukan grup layanan yang akan dijalankan.

Nota

Visual Studio juga mendukung Podman Compose sebagai runtime Compose alternatif. Fitur profil peluncuran yang dijelaskan di sini berfungsi dengan Docker Compose dan Podman Compose.

Untuk informasi mengenai profil Docker Compose, lihat Menggunakan profil dengan Compose.

Prasyarat

Mengelola pengaturan peluncuran

Pertimbangkan proyek Docker Compose berikut di mana docker-compose.yml memiliki lima layanan dan tiga profil Compose (web, web1 dan web2).

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

Ada beberapa opsi untuk membuka dialog pengaturan peluncuran Docker Compose:

  • Di Visual Studio, pilih Debug>Kelola Pengaturan Peluncuran Docker Compose:

    Cuplikan layar Item menu Debug Kelola Pengaturan Tulis

  • Klik kanan pada proyek Visual Studio docker-compose dan pilih Kelola Pengaturan Peluncuran Docker Compose

    Cuplikan layar item menu konteks

  • Gunakan Luncur Cepat (Ctrl+Q) dan cari Docker Compose untuk menemukan perintah yang sama.

Dalam contoh di bawah ini, profil web1 Compose dipilih, yang memfilter daftar layanan menjadi hanya tiga dari lima yang disertakan dalam profil tersebut.

Nota

Bagian Profil Docker Compose hanya muncul jika ada profil yang ditentukan dalam file docker-compose.yml Anda.

Contoh berikutnya menunjukkan pemilihan antara layanan individual daripada memfilter layanan di profil Compose. Di sini, kami menunjukkan bagaimana dialog akan terlihat jika Anda membuat profil peluncuran baru bernama test2 yang hanya memulai dua dari lima layanan, webapplication1 dengan penelusuran kesalahan dan webapplication2 tanpa penelusuran kesalahan. Profil peluncuran ini juga meluncurkan browser ketika aplikasi dimulai dan membukanya ke beranda webapplication1.

Cuplikan layar dialog pengaturan peluncuran dengan beberapa layanan yang tidak dipilih

Dan informasi ini disimpan di launchSettings.json seperti yang ditunjukkan di bawah ini

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

Membuat profil peluncuran yang menggunakan profil Docker Compose

Anda juga dapat lebih lanjut menyesuaikan perilaku peluncuran dengan membuat profil peluncuran Visual Studio yang menggunakan profil Compose.

Untuk membuat profil lain yang menggunakan profil Compose, pilih Gunakan profil Docker Compose dan pilih web1. Sekarang profil peluncuran mencakup tiga layanan: webapplication1 (yang termasuk dalam profil web dan web1 Compose), external1, dan external2. Secara bawaan, layanan tanpa kode sumber seperti external1 dan external2 memiliki tindakan bawaan Mulai tanpa debugging. Aplikasi .NET dengan kode sumber secara default ke Memulai Debug.

Penting

Jika suatu layanan tidak menentukan profil Compose, layanan tersebut disertakan dalam semua profil Compose secara implisit.

Cuplikan layar dialog pengaturan peluncuran dengan profil lain yang dibuat

Informasi ini disimpan seperti yang ditunjukkan dalam kode berikut. Konfigurasi untuk layanan dan tindakan defaultnya tidak disimpan kecuali Anda mengubah tindakan default.

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

Anda juga dapat mengubah tindakan webapplication1 menjadi Mulai tanpa penelusuran kesalahan. Pengaturan di launchSettings.json kemudian terlihat seperti kode berikut:

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

Properti

Berikut adalah deskripsi setiap properti di launchSettings.json:

Harta benda Deskripsi
commandName Nama perintah. Mengubah ke "DockerCompose"
commandVersion Nomor versi yang digunakan untuk mengelola skema profil peluncuran DockerCompose.
buatProfil Properti utama yang mendefinisikan definisi profil peluncuran. Properti anaknya includes dan serviceActions
composeProfile - meliputi Daftar nama profil Compose yang membentuk profil peluncuran.
SusunProfil - TindakanLayanan Mencantumkan profil Compose yang dipilih, layanan, dan tindakan peluncuran dari setiap layanan.
serviceActions Mencantumkan layanan yang dipilih dan tindakan peluncuran.
composeLaunchAction Menentukan tindakan peluncuran yang akan dilakukan pada F5 atau Ctrl+F5. Nilai yang diizinkan adalah None, LaunchBrowser, dan LaunchWCFTestClient.
composeLaunchUrl URL yang digunakan saat meluncurkan browser. Token pengganti yang valid adalah "{ServiceIPAddress}", "{ServicePort}", dan "{Scheme}". Misalnya: {Scheme}://{ServiceIPAddress}:{ServicePort}
composeLaunchServiceName Menentukan layanan yang digunakan untuk mengganti token dalam composeLaunchUrl.