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.
Visual Studio dışında bir Dockerfile ile kapsayıcı projesi oluşturmak istiyorsanız, komut satırından derlemek için docker build
, MSBuild
, dotnet build
veya dotnet publish
kullanabilirsiniz.
.NET SDK derleme türünü kullanıyorsanız Dockerfile'nız olmadığından docker build
kullanamazsınız; bunun yerine, komut satırında derlemek için MSBuild
, dotnet build
veya dotnet publish
kullanın.
Docker Build kullan
Komut satırından kapsayıcılı çözüm oluşturmak için genellikle çözümdeki her proje için komut docker build <context>
kullanabilirsiniz. Derleme bağlamı ve bağımsız değişken sağlarsınız. Dockerfile için derleme bağlamı, yerel makinede görüntüyü oluşturmak için çalışma klasörü olarak kullanılan klasördür. Örneğin, kapsayıcıya kopyalarken dosyaları kopyaladığınız klasördür. .NET Core projelerinde varsayılan değer, çözüm dosyasını (.sln) içeren klasörü kullanmaktır. Göreli yol olarak ifade edilen bu bağımsız değişken genellikle bir proje klasöründeki Dockerfile için ".." ve üst klasöründeki çözüm dosyasıdır. .NET Framework projeleri için varsayılan derleme bağlamı çözüm klasörü değil proje klasörüdür.
docker build -f Dockerfile ..
DockerfileContext
özelliğini ayarlayarak proje dosyasında derleme bağlamını ayarlayabilirsiniz. Mesela
<PropertyGroup>
<DockerfileContext>contextfolder</DockerfileContext>
</PropertyGroup>
Dockerfile içindeki göreli yollar derleme bağlamı ile ilişkilidir, bu nedenle bağlamı değiştirirseniz göreli yolları uygun şekilde güncelleştirdiğinizden emin olun.
Visual Studio 17.11 ve sonraki sürümlerde, bir projeye Docker desteği eklediğinizde, derleme bağlamı için bir klasör belirtebilirsiniz. Derleme bağlamını değiştirmek isterseniz Dockerfile dosyasını silebilir (saklamak istediğiniz başka değişiklikler yoksa) ve Docker Desteği Eklebu kez yeni derleme bağlamını belirterek yeniden çalıştırabilirsiniz. Yeni Dockerfile'da, yeni derleme bağlamına uygun olarak güncellenmiş göreli yollar yer alacak.
MSBuild kullanma
Not
Bu bölümde Dockerfile kapsayıcı derleme türünü seçtiğinizde Docker kapsayıcılarınızı nasıl özelleştirebileceğiniz açıklanmaktadır. .NET SDK derleme türünü kullanıyorsanız özelleştirme seçenekleri farklıdır ve bu makaledeki bilgiler geçerli değildir. Bunun yerine bir .NET uygulamasını dotnet publish ile kapsayıcı hale getirme hakkındabölümüne bakın.
.NET Framework projeleri için Visual Studio tarafından oluşturulan Docker dosyaları (ve Visual Studio 2017 Güncelleştirme 4 öncesindeki sürümleriyle oluşturulan .NET Core projeleri için) çok aşamalı Docker dosyaları değildir. Bu Dockerfile'lardaki adımlar kodunuzu derlemez. Bunun yerine, Visual Studio bir .NET Framework Dockerfile oluşturduğunuzda, ilk olarak MSBuild kullanarak projenizi derler. Bu başarılı olduğunda, Visual Studio dockerfile'ı oluşturur ve bu da MSBuild'den elde edilen Docker görüntüsüne derleme çıkışını kopyalar. Kodunuzu derleme adımları Dockerfile'a dahil olmadığından, komut satırından docker build
kullanarak .NET Framework Dockerfiles oluşturamazsınız. Bu projeleri oluşturmak için MSBuild kullanmalısınız.
Tek bir Docker kapsayıcı projesi için görüntü oluşturmak için /t:ContainerBuild
komut seçeneğiyle MSBuild kullanabilirsiniz. Bu komut MSBuild'e varsayılan hedef Build
yerine hedef ContainerBuild
oluşturmasını söyler. Örneğin
MSBuild MyProject.csproj /t:ContainerBuild /p:Configuration=Release
Visual Studio IDE'den çözümünüzü oluştururken Çıktı penceresinde gördüğünüze benzer bir çıktı görürsünüz. Her zaman /p:Configuration=Release
kullanın, çünkü Visual Studio'nun çok aşamalı derleme iyileştirmesini kullandığı durumlarda, Hata Ayıklama yapılandırması oluşturulduğunda sonuçlar beklenildiği gibi olmayabilir.
Hata ayıklama için kapsayıcı görüntülerini özelleştirmeye bakın.
Docker Compose projesi kullanıyorsanız görüntü oluşturmak için şu komutu kullanın:
msbuild /p:SolutionPath=<solution-name>.sln /p:Configuration=Release docker-compose.dcproj
MSBuild günlüklerini görüntülemek için "MSBuild ile derleme günlüklerini alma" bölümüne bakın .