Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kapsayıcı Araçları derleme özellikleri bölümünde açıklanan tek tek Docker projelerini denetleyen özelliklere ek olarak, MSBuild'in çözümünüzü oluşturmak için kullandığı Docker Compose özelliklerini ayarlayarak Visual Studio'nın Docker Compose projelerinizi nasıl derlediğini de özelleştirebilirsiniz. Ayrıca, Docker Compose yapılandırma dosyalarında dosya etiketleri ayarlayarak Visual Studio hata ayıklayıcının Docker Compose uygulamalarınızı nasıl çalıştırabileceğini denetleyebilirsiniz.
MSBuild özelliklerini ayarlama
Bir özelliğin değerini ayarlamak için proje dosyasını düzenleyin. Docker Compose özellikleri için, sonraki bölümde tabloda aksi belirtilmediği sürece bu proje dosyası .dcproj uzantısına sahip dosyadır. Örneğin, hata ayıklamaya başladığınızda tarayıcının başlatılmasını belirtmek istediğinizi varsayalım.
DockerLaunchAction proje dosyasındaki .dcproj özelliğini aşağıdaki gibi ayarlayabilirsiniz.
<PropertyGroup>
<DockerLaunchAction>LaunchBrowser</DockerLaunchAction>
</PropertyGroup>
Özellik ayarını mevcut bir PropertyGroup öğesine ekleyebilir veya yoksa yeni bir PropertyGroup öğesi oluşturabilirsiniz.
Docker Compose MSBuild özellikleri
Aşağıdaki tabloda Docker Compose projeleri (.dcproj dosyaları) için kullanılabilen MSBuild özellikleri gösterilmektedir.
| Özellik adı | Açıklama |
|---|---|
| EkComposeFilePaths | Tüm komutlar için docker-compose.exe gönderilecek noktalı virgülle ayrılmış bir listede ek oluşturma dosyalarını belirtir. Docker Compose proje dosyasından (dcproj) göreli yollara izin verilir. |
| DependencyAwareStart |
depends_on ve healthcheckDocker Compose özelliklerini destekleyen ve hizmet başlatma sırasını ve sistem durumu denetimlerini denetleyen uygulamayı başlatmanın farklı bir yolunu etkinleştirir.Visual Studio 17.13 veya üzerini gerektirir. Varsayılan değer: False |
| DockerComposeBaseFilePath | Docker Compose dosyalarının dosya adlarının ilk bölümünü .yml uzantısı olmadan belirtir. Mesela: 1. DockerComposeBaseFilePath = null/undefined: docker-composetemel dosya yolunu kullanın; dosyalar docker-compose.yml ve docker-compose.override.ymlolarak adlandırılır.2. DockerComposeBaseFilePath = mydockercompose: dosyalar mydockercompose.yml ve mydockercompose.override.ymlolarak adlandırılır. 3. DockerComposeBaseFilePath = .. \mydockercompose: dosyalar bir düzeyde olacak. Varsayılan değer: docker-compose |
| DockerComposeBuildArguments |
docker-compose build komutuna geçirecek ek parametreleri belirtir. Örneğin, --parallel --pull. |
| DockerComposeDownArguments |
docker-compose down komutuna geçirecek ek parametreleri belirtir. Örneğin, --timeout 500. |
| DockerComposeEnvFilePath |
docker composearacılığıyla --env-file komutlarına geçirilen bir .env dosyasının göreli yolu. bkz. env_file özniteliğinikullanma.Varsayılan değer: Boş |
| DockerComposeProjectName | Belirtilirse, Docker Compose projesinin proje adını geçersiz kılar. Varsayılan değer: "dockercompose" + otomatik oluşturulan karma |
| DockerComposeProjectsToIgnore | Hata ayıklama sırasında Docker Compose araçları tarafından yoksayılacak projeleri belirtir. Bu özellik herhangi bir proje için kullanılabilir. Dosya yolları iki yoldan biri belirtilebilir: 1. Dcproj'a göre. Örneğin, <DockerComposeProjectsToIgnore> path\to\AngularProject1.csproj </DockerComposeProjectsToIgnore>. 2. Mutlak yollar. Not: Yollar ;sınırlayıcı karakteriyle ayrılmalıdır. |
| DockerComposeUpArguments |
docker-compose up komutuna geçirecek ek parametreleri belirtir. Örneğin, --timeout 500. |
| DockerDevelopmentMode | Kullanıcı projesinin kapsayıcıda derlenip derlenmesini denetler.
Hızlı veya normal izin verilen değerleri, Dockerfile'da hangi aşamaların oluşturulduğuna denetler. Hata ayıklama yapılandırması varsayılan olarak Hızlı mod ve aksi halde Normal moddur. Varsayılan değer: Hızlı |
| DockerLaunchAction | F5 veya Ctrl+F5 üzerinde gerçekleştirilecek başlatma eylemini belirtir. İzin verilen değerler None, LaunchBrowser ve LaunchWCFTestClient değerleridir. Varsayılan değer: Yok |
| DockerLaunchBrowser | Tarayıcının başlatılıp başlatılmayacağını gösterir. DockerLaunchAction belirtilirse yoksayılır. Varsayılan değer: False |
| DockerServiceName | DockerLaunchAction veya DockerLaunchBrowser belirtilirse DockerServiceName, docker-compose dosyasında başvurulan hizmetin başlatıldığını belirtir. |
| DockerServiceUrl | Tarayıcı başlatılırken kullanılacak URL. Geçerli değiştirme belirteçleri şunlardır: "{ServiceIPAddress}", "{ServicePort}" ve "{Scheme}". Örneğin: {Scheme}://{ServiceIPAddress}:{ServicePort} |
| DockerTargetOS | Docker görüntüsünü oluştururken kullanılan hedef işletim sistemi. |
Ayrıca, DockerComposeProjectPath veya .csproj proje dosyasındaki .vbproj özelliği, Docker Compose projesi (.dcproj) dosyasının göreli yolunu belirtir.
docker-compose.yml dosyasında depolanan ilişkili görüntü derleme ayarlarını bulmak için hizmet projesini yayımlarken bu özelliği ayarlayın.
Örnek
docker-compose dosyalarının konumunu değiştirmek için DockerComposeBaseFilePath göreli bir yola ayarlarsanız, çözüm klasörüne başvurması için derleme bağlamının değiştirildiğinden de emin olmanız gerekir. Örneğin, docker-compose dosyanız DockerComposeFilesadlı bir klasörse Docker Compose dosyası derleme bağlamını ".." veya ".. /..", çözüm klasörüne göre konumuna bağlı olarak.
<?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>
mydockercompose.yml dosyası, derleme bağlamı çözüm klasörünün göreli yoluna ayarlanmış olarak şöyle görünmelidir (bu örnekte ..).
version: '3.4'
services:
webapplication1:
image: ${DOCKER_REGISTRY-}webapplication1
build:
context: ..
dockerfile: WebApplication1\Dockerfile
Not
DockerComposeBuildArguments, DockerComposeDownArguments ve DockerComposeUpArguments, Visual Studio 2019 sürüm 16.3'te yenidir.
Visual Studio'nun Docker Compose yapılandırmasını geçersiz kılma
Genellikle docker-compose.override.yml, docker-compose.yml'deki bazı ayarları geçersiz kılmak için kullanılır. Ayrıca Visual Studio, uygulamayı Visual Studio'da çalıştırmaya özgü ayarlara sahip docker-compose.vs.debug.g.yml (Hızlı modu için) ve docker-compose.vs.release.g.yml (Normal modu için) geçersiz kılma dosyaları oluşturur. docker-compose.vs.debug.yml adlı bir dosya (Hızlı modu için) veya docker-compose.vs.release.yml (Normal modu için) docker-compose.yml dosyanızla aynı dizine yerleştirerek bu Visual Studio ayarlarını geçersiz kılabilirsiniz. Docker Compose projesine sağ tıklayın ve Dosya Gezgini'nde Klasör Aç'ı seçin ve dosyayı Docker Compose projenize eklemek için >kullanın.
Bahşiş
Visual Studio ayarlarından herhangi birinin varsayılan değerlerini bulmak için, docker-compose.vs.debug.g.yml veya docker-compose.vs.release.g.ymliçin ara çıkış dizinine (örneğin obj/Docker) bakın. Bu dosyalar Visual Studio tarafından oluşturulur ve değiştirilmemelidir.
Docker Compose dosya etiketleri
docker-compose.vs.debug.yml veya docker-compose.vs.release.ymliçinde geçersiz kılmaya özgü etiketleri aşağıdaki gibi tanımlayabilirsiniz:
services:
webapplication1:
labels:
com.microsoft.visualstudio.debuggee.workingdirectory: "C:\\my_app_folder"
Önceki örnekte olduğu gibi değerlerin çevresinde çift tırnak işareti kullanın ve yollardaki ters eğik çizgilerde kaçış karakteri olarak ters eğik çizgiyi kullanın.
| Etiket adı | Açıklama |
|---|---|
| com.microsoft.visualstudio.debuggee.program | Hata ayıklama başlatılırken program başlatıldı. .NET Core uygulamaları için bu ayar genellikle dotnet. |
| com.microsoft.visualstudio.debuggee.arguments | Hata ayıklama başlatılırken programa geçirilen bağımsız değişkenler. .NET Core uygulamaları için bu bağımsız değişkenler genellikle NuGet paketleri için ek arama yolları ve ardından projenin çıkış derlemesinin yoludur. |
| com.microsoft.visualstudio.debuggee.workingdirectory | Hata ayıklama başlatılırken başlangıç dizini olarak kullanılan dizin. Bu ayar genellikle Linux kapsayıcıları için /app veya Windows kapsayıcıları için C:\app . |
| com.microsoft.visualstudio.debuggee.killprogram | Bu komut, kapsayıcının içinde çalışan debuggee programını durdurmak için kullanılır (gerektiğinde). |
| com.microsoft.visualstudio.debuggee.noattach.program | yalıtılmış bir işlemde çalışan bir Azure işlevleri projesinde (Ctrl+F5) hata ayıklamadan Start kullandığınızda program başlatıldı. Genellikle hem F5 hem de Ctrl+F5 aynı programı kullanır, ancak yalıtılmış bir işlemdeki Azure İşlevleri gibi herhangi bir proje türü için F5 farklı bir program gerekiyorsa bu kullanılır. |
| com.microsoft.visualstudio.debuggee.noattach.arguments | Yalıtılmış bir işlemde çalışan bir Azure işlevleri projesinde hata ayıklamadan Başlangıç (Ctrl+F5) kullandığınızda programa geçirilen bağımsız değişkenler. |
| com.microsoft.visual-studio.project-name | Proje, Dockerfile ile aynı klasörde değilse Visual Studio'nun projeyi bulmasına yardımcı olan projenin adı. |
| com.microsoft.visualstudio.launch-url.path-query | Bağlantı noktaları sekmesinde bağlantıları açarken kapsayıcılar penceresi tarafından kullanılan yol ve sorgu. Visual Studio 17.13 veya üzerini gerektirir. |
Docker derleme işlemini özelleştirme
target özelliğindeki build ayarını kullanarak Dockerfile'ınızda hangi aşamanın derleneceklerini bildirebilirsiniz. Bu geçersiz kılma yalnızca docker-compose.vs.debug.yml veya docker-compose.vs.release.yml kullanılabilir
services:
webapplication1:
build:
target: customStage
labels:
...
Uygulama başlatma işlemini özelleştirme
uygulamanızı başlatmadan önce entrypoint ayarını kullanarak ve DockerDevelopmentModebağımlı hale getirerek bir komut veya özel betik çalıştırabilirsiniz. Örneğin, çalıştırarak update-ca-certificates modunda bir sertifika ayarlamanız gerekiyorsa ancak Normal modunda değilse, aşağıdaki kodu yalnızca docker-compose.vs.debug.ymlekleyebilirsiniz:
services:
webapplication1:
entrypoint: "sh -c 'update-ca-certificates && tail -f /dev/null'"
labels:
...
Daha fazla bilgi için bkz. kapsayıcı giriş noktası
Sonraki adımlar
MSBuild özellikleri hakkında genel bilgi için bkz. MSBuild Özellikleri.
Ayrıca bkz.
Kapsayıcı Araçları derleme özelliklerini
Kapsayıcı Araçları başlatma ayarlarını
Visual Studio'da Docker Compose başlatma profillerini yönetme