Dockerfile öğelerini keşfetme

Tamamlandı

Dockerfile, Docker görüntüsü oluşturmak için kullanılan bir dizi yönerge içeren bir betiktir. Dockerfile'lar genellikle aşağıdaki bilgileri içerir:

  • Yeni görüntü oluşturmak için kullanılan temel veya üst görüntü
  • Temel işletim sistemini güncelleştirme ve diğer yazılımları yükleme komutları
  • Geliştirilmiş uygulama gibi eklenecek derleme yapıtları
  • Depolama alanı ve ağ yapılandırması gibi kullanıma sunulacak hizmetler
  • Kapsayıcı başlatıldığında çalıştırılacak komutlar

Dockerfile oluşturma

Dockerfile oluşturmanın ilk adımı, uygulamanızın temelini oluşturan bir temel görüntü seçmektir. Örneğin, bir .NET uygulaması oluşturuyorsanız, temel olarak bir Microsoft .NET görüntüsü seçebilirsiniz.

# Use the .NET 6 runtime as a base image
FROM mcr.microsoft.com/dotnet/runtime:6.0

# Set the working directory to /app
WORKDIR /app

# Copy the contents of the published app to the container's /app directory
COPY bin/Release/net6.0/publish/ .

# Expose port 80 to the outside world
EXPOSE 80

# Set the command to run when the container starts
CMD ["dotnet", "MyApp.dll"]

Şimdi ne yaptığını görmek için her satırı inceleyelim:

  • FROM mcr.microsoft.com/dotnet/runtime:6.0: Bu komut temel görüntüyü .NET 6 uygulamalarını çalıştırmak için gereken .NET 6 çalışma zamanına ayarlar.
  • WORKDIR /app: Uygulama dosyalarının kopyalandığı çalışma dizinini /appolarak ayarlar.
  • COPY bin/Release/net6.0/publish/ .: Yayımlanan uygulamanın içeriğini kapsayıcının /app dizinine kopyalar. .NET 6 uygulamasının zaten derlendiğini ve dizinde bin/Release/net6.0/publish yayımlandığını varsayıyoruz.
  • EXPOSE 80: Varsayılan HTTP bağlantı noktası olan 80 numaralı bağlantı noktasını dış dünyaya sunar. Uygulamanız farklı bir bağlantı noktasında dinliyorsa bu satırı buna göre değiştirin.
  • CMD ["dotnet", "MyApp.dll"]: Kapsayıcı başlatıldığında çalıştırılacak komut. Bu durumda, uygulamamızın DLL dosyasının (MyApp.dll) adıyla dotnet komutunu çalıştırıyoruz. Bu satırı, uygulama adınızla ve giriş noktanızla eşleşecek şekilde değiştirin.

Dockerfile dosya belirtimini kapsamayacağız, daha fazla bilgi için Dockerfile başvuru adresini ziyaret edin. Bu adımların her biri, son kapsayıcı görüntüsünü oluşturma sürecinde önbelleğe alınmış bir kapsayıcı görüntüsü oluşturur. Bu geçici görüntülerin her biri bir öncekinin üzerine eklenir ve tüm adımlar tamamlandığında tek bir görüntü olarak sunulur.

Kaynaklar