Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Selain properti yang mengontrol proyek Docker individual, yang dijelaskan dalam properti build Container Tools, Anda juga dapat menyesuaikan cara Visual Studio membangun proyek Docker Compose Anda dengan mengatur properti Docker Compose yang digunakan MSBuild untuk membangun solusi Anda. Anda juga dapat mengontrol bagaimana debugger Visual Studio menjalankan aplikasi Docker Compose Anda dengan mengatur label file di file konfigurasi Docker Compose.
Nota
Properti build ini juga berlaku saat Anda menggunakan Podman Compose sebagai runtime Compose di Visual Studio.
Cara mengatur properti MSBuild
Untuk mengatur nilai properti, edit file proyek. Untuk properti Docker Compose, file proyek ini adalah file dengan ekstensi .dcproj, kecuali dinyatakan lain dalam tabel di bagian berikutnya. Misalnya, Anda ingin menentukan untuk meluncurkan browser saat memulai penelusuran kesalahan. Anda dapat mengatur properti DockerLaunchAction dalam file proyek .dcproj sebagai berikut.
<PropertyGroup>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
</PropertyGroup>
Anda dapat menambahkan pengaturan properti ke elemen PropertyGroup yang sudah ada, atau jika tidak ada, buat elemen PropertyGroup baru.
Properti Docker Compose MSBuild
Tabel berikut ini memperlihatkan properti MSBuild yang tersedia untuk proyek Docker Compose (.dcproj file).
| Nama properti | Deskripsi |
|---|---|
| AdditionalComposeFilePaths | Menentukan file kompos tambahan dalam daftar yang dibatasi titik koma yang akan dikirim ke docker-compose.exe untuk semua perintah. Jalur relatif dari file proyek Docker Compose (dcproj) diizinkan. |
| DependencyAwareStart | Mengaktifkan cara berbeda untuk meluncurkan aplikasi yang mendukung properti Docker Compose depends_on dan healthcheck, yang mengontrol pesanan startup layanan dan pemeriksaan kesehatan.Memerlukan Visual Studio 17.13 atau yang lebih baru. Nilai default: False |
| DockerComposeBaseFilePath | Menentukan bagian pertama dari nama file file Docker Compose, tanpa ekstensi .yml. Misalnya: 1. DockerComposeBaseFilePath = null/undefined: gunakan jalur file dasar docker-compose, dan file akan diberi nama docker-compose.yml dan docker-compose.override.yml.2. DockerComposeBaseFilePath = mydockercompose: file akan diberi nama mydockercompose.yml dan mydockercompose.override.yml. 3. DockerComposeBaseFilePath = .. \mydockercompose: file akan naik satu tingkat. Nilai default: docker-compose |
| DockerComposeBuildArguments | Menentukan parameter tambahan untuk diteruskan ke perintah docker-compose build. Misalnya, --parallel --pull. |
| DockerComposeDownArguments | Menentukan parameter tambahan untuk diteruskan ke perintah docker-compose down. Misalnya, --timeout 500. |
| DockerComposeEnvFilePath | Jalur relatif ke file .env yang diteruskan ke perintah docker compose melalui --env-file. Lihat Menggunakan atribut env_file.Nilai default: Kosong |
| DockerComposeProjectName | Jika ditentukan, ambil alih nama proyek untuk proyek Docker Compose. Nilai default: "dockercompose" + hash yang dihasilkan secara otomatis |
| DockerComposeProjectsToIgnore | Menentukan proyek yang akan diabaikan oleh alat Docker Compose selama debug. Properti ini dapat digunakan untuk proyek apa pun. Jalur file dapat ditentukan salah satu dari dua cara: 1. Relatif terhadap dcproj. Misalnya, <DockerComposeProjectsToIgnore> path\to\AngularProject1.csproj </DockerComposeProjectsToIgnore>. 2. Jalur absolut. Catatan: Jalur harus dipisahkan oleh karakter pemisah ;. |
| DockerComposeUpArguments | Menentukan parameter tambahan untuk diteruskan ke perintah docker-compose up. Misalnya, --timeout 500. |
| DockerDevelopmentMode | Mengontrol apakah proyek pengguna dibangun dalam kontainer. Nilai yang diizinkan dari kontrol Fast atau Regular tahap mana yang dibangun dalam Dockerfile. Konfigurasi Debug adalah mode Cepat secara default dan mode Reguler sebaliknya. Nilai default: Cepat |
| DockerLaunchAction | Menentukan tindakan peluncuran yang akan dilakukan pada F5 atau Ctrl+F5. Nilai yang diizinkan adalah None, LaunchBrowser, dan LaunchWCFTestClient. Nilai default: Tidak ada |
| DockerLaunchBrowser | Menunjukkan apakah akan meluncurkan browser. Diabaikan jika DockerLaunchAction ditentukan. Nilai default: False |
| DockerServiceName | Jika DockerLaunchAction atau DockerLaunchBrowser ditentukan, maka DockerServiceName menentukan layanan mana yang direferensikan dalam file docker-compose akan diluncurkan. |
| DockerServiceUrl | URL yang digunakan saat meluncurkan browser. Token pengganti yang valid adalah "{ServiceIPAddress}", "{ServicePort}", dan "{Scheme}". Misalnya: {Scheme}://{ServiceIPAddress}:{ServicePort} |
| DockerTargetOS | OS target yang digunakan saat membangun gambar Docker. |
Selain itu, properti DockerComposeProjectPath dalam file proyek .csproj atau .vbproj menentukan jalur relatif ke file proyek Docker Compose (.dcproj). Atur properti ini saat menerbitkan proyek layanan untuk menemukan pengaturan build gambar terkait yang disimpan dalam file docker-compose.yml.
Contoh
Jika Anda mengubah lokasi file docker-compose, dengan mengatur DockerComposeBaseFilePath ke jalur relatif, maka Anda juga perlu memastikan bahwa konteks build diubah sehingga mereferensikan folder solusi. Misalnya, jika file docker-compose Anda adalah folder yang disebut DockerComposeFiles, file Docker Compose harus mengatur konteks build ke ".." atau ".. . /..", tergantung di mana relatif terhadap folder solusi.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" Sdk="Microsoft.Docker.Sdk">
<PropertyGroup Label="Globals">
<ProjectVersion>2.1</ProjectVersion>
<DockerTargetOS>Windows</DockerTargetOS>
<ProjectGuid>154022c1-8014-4e9d-bd78-6ff46670ffa4</ProjectGuid>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
<DockerServiceUrl>{Scheme}://{ServiceIPAddress}{ServicePort}</DockerServiceUrl>
<DockerServiceName>webapplication1</DockerServiceName>
<DockerComposeBaseFilePath>DockerComposeFiles\mydockercompose</DockerComposeBaseFilePath>
<AdditionalComposeFilePaths>AdditionalComposeFiles\myadditionalcompose.yml</AdditionalComposeFilePaths>
</PropertyGroup>
<ItemGroup>
<None Include="DockerComposeFiles\mydockercompose.override.yml">
<DependentUpon>DockerComposeFiles\mydockercompose.yml</DependentUpon>
</None>
<None Include="DockerComposeFiles\mydockercompose.yml" />
<None Include=".dockerignore" />
</ItemGroup>
</Project>
File mydockercompose.yml akan terlihat seperti ini, dengan konteks build diatur ke jalur relatif folder solusi (dalam hal ini, ..).
version: '3.4'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
build:
context: ..
dockerfile: WebApplication1\Dockerfile
Nota
DockerComposeBuildArguments, DockerComposeDownArguments, dan DockerComposeUpArguments baru di Visual Studio 2019 versi 16.3.
Mengesampingkan konfigurasi Docker Compose Visual Studio
Biasanya docker-compose.override.yml digunakan untuk mengambil alih pengaturan tertentu di docker-compose.yml. Selain itu, Visual Studio menghasilkan file penggantian docker-compose.vs.debug.g.yml (untuk mode Fast) dan docker-compose.vs.release.g.yml (untuk mode Reguler) dengan pengaturan yang khusus untuk menjalankan aplikasi di dalam Visual Studio. Anda dapat mengambil alih pengaturan Visual Studio ini dengan menempatkan file bernama docker-compose.vs.debug.yml (untuk mode Fast) atau docker-compose.vs.release.yml (untuk mode Reguler) di direktori yang sama dengan file docker-compose.yml Anda. Klik kanan proyek Docker Compose dan pilih Buka Folder di File Explorer , lalu gunakan Tambahkan>Item yang Ada untuk menambahkan file ke proyek Docker Compose Anda.
Ujung
Untuk mengetahui nilai default untuk salah satu pengaturan Visual Studio, lihat di direktori output menengah (misalnya, obj/Docker) untuk docker-compose.vs.debug.g.yml atau docker-compose.vs.release.g.yml. File-file ini dihasilkan oleh Visual Studio dan tidak boleh dimodifikasi.
Label file Docker Compose
Di docker-compose.vs.debug.yml atau docker-compose.vs.release.yml, Anda dapat menentukan label khusus penggantian sebagai berikut:
services:
webapplication1:
labels:
com.microsoft.visualstudio.debuggee.workingdirectory: "C:\\my_app_folder"
Gunakan tanda kutip ganda di sekitar nilai, seperti dalam contoh sebelumnya, dan gunakan garis miring terbalik sebagai karakter escape untuk garis miring terbalik di jalur.
Menyesuaikan proses build Docker
Anda dapat mendeklarasikan tahap mana yang akan dibangun di Dockerfile Anda dengan menggunakan pengaturan target di properti build. Penimpaan ini hanya dapat digunakan dalam docker-compose.vs.debug.yml atau docker-compose.vs.release.yml
services:
webapplication1:
build:
target: customStage
labels:
...
Mengkustomisasi proses pengaktifan aplikasi
Anda dapat menjalankan perintah atau skrip kustom sebelum meluncurkan aplikasi dengan menggunakan pengaturan entrypoint, dan membuatnya bergantung pada DockerDevelopmentMode. Misalnya, jika Anda perlu menyiapkan sertifikat hanya dalam mode cepat dengan menjalankan update-ca-certificates, tetapi tidak dalam mode Reguler, Anda dapat menambahkan kode berikut dalam hanyadocker-compose.vs.debug.yml:
services:
webapplication1:
entrypoint: "sh -c 'update-ca-certificates && tail -f /dev/null'"
labels:
...
Untuk informasi selengkapnya, lihat titik entri kontainer
Langkah berikutnya
Untuk informasi tentang properti MSBuild umumnya, lihat Properti MSBuild.
Lihat juga
pengaturan peluncuran Alat Kontainer
Mengelola profil peluncuran untuk Docker Compose di Visual Studio