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.
Bu öğreticide, Spring Boot uygulamanızı kapsayıcıya almak ve Azure App Service'ndeki bir Linux konağına kendi docker görüntünüzü dağıtmak için Docker kullanma adımları gösterilir.
Önkoşullar
Bu öğreticideki adımları tamamlamak için aşağıdaki önkoşullara sahip olmanız gerekir:
- Azure aboneliği; Henüz bir Azure aboneliğiniz yoksa,
MSDN abone avantajlarınızı etkinleştirebilir veyaücretsiz bir Azure hesabına kaydolabilirsiniz. - Azure Command-Line Arabirimi (CLI).
- Desteklenen bir Java Geliştirme Seti (JDK). Azure'da geliştirme yaparken kullanılabilecek JDK'ler hakkında daha fazla bilgi için bkz. Azure'da Java desteği ve Azure Stack.
- Apache Maven derleme aracı (Sürüm 3).
- Git istemcisi.
- Docker istemcisi.
Not
Bu öğreticinin sanallaştırma gereksinimleri nedeniyle, bir sanal makinede bu makaledeki adımları uygulayamazsınız; sanallaştırma özellikleri etkinleştirilmiş bir fiziksel bilgisayar kullanmanız gerekir.
Docker üzerinde Spring Boot için Başlangıç web uygulamasını oluşturma
Aşağıdaki adımlarda basit bir Spring Boot web uygulaması oluşturmak ve yerel olarak test etmek için gereken adımlar izlenir.
Bir komut istemi açın ve uygulamanızı barındıracak yerel bir dizin oluşturun ve bu dizine geçin; mesela:
mkdir SpringBoot cd SpringBootDocker'da Spring Boot Getting Started örnek projesinin kopyasını oluşturduğunuz dizine alın; örneğin:
git clone https://github.com/spring-guides/gs-spring-boot-docker.gitDizini tamamlanmış proje olarak değiştirin; mesela:
cd gs-spring-boot-docker/completeMaven kullanarak JAR dosyasını oluşturun; mesela:
mvn packageWeb uygulaması oluşturulduktan sonra dizini JAR dosyasının bulunduğu
targetdiziniyle değiştirin ve web uygulamasını başlatın; mesela:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80Web tarayıcısını kullanarak web uygulamasına yerel olarak göz atarak web uygulamasını test edin. Örneğin, curl kullanılabilir durumdaysa ve Tomcat sunucusunu 80 numaralı bağlantı noktasında çalışacak şekilde yapılandırdıysanız:
curl http://localhostŞu iletiyi görmeniz gerekir: Hello Docker World
Özel Docker Kayıt Defteri olarak kullanılacak bir Azure Container Registry oluşturma
Aşağıdaki adımlarda, Azure portalını kullanarak azure container registry oluşturma adımları açıklanmaktadır.
Not
Azure portalı yerine Azure CLI kullanmak istiyorsanız, Azure CLI 2.0kullanarak özel Docker kapsayıcı kayıt defteri oluşturma'daki adımları izleyin.
azure portal
göz atın ve oturum açın. Azure portalında hesabınızda oturum açtıktan sonra, Azure portalını kullanarak özel bir Docker kapsayıcı kayıt defteri oluşturma makalesinde (adım ) yer alan adımları izleyin. Bu adımlar, hızlılık adına aşağıda özetlenmiştir.
Yenimenü simgesine
tıklayın, ardındanKapsayıcılar öğesini veAzure Container Registry 'i seçin.
oluşturmaKapsayıcı kayıt defteri oluşturma sayfası (
) görüntülendiğinde, Kayıt Defteri adı ,Abonelik ,Kaynak grubu veKonum bilgilerini girin. Ardından oluştur'i seçin.
Erişim anahtarları altında Ayarlar seçin ve Yönetici kullanıcıarkasındaki Etkin düğmesini açın.
Maven'ı Azure Container Registry'nize görüntü oluşturacak şekilde yapılandırma
Spring Boot uygulamanızın tamamlanmış proje dizinine gidin ( örneğin, C:\SpringBoot\gs-spring-boot-docker\complete veya
/users/robert/SpringBoot/gs-spring-boot-docker/complete )ve pom.xml dosyasını bir metin düzenleyicisiyle açın.<properties>dosyasındaki koleksiyonunu bu öğreticinin önceki bölümünden jib-maven-plugin, oturum açma sunucusu değeri ve Azure Container Registry'niz için erişim ayarlarının en son sürümüyle güncelleştirin. Mesela:<properties> <jib-maven-plugin.version>3.2.0</jib-maven-plugin.version> <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix> <java.version>1.8</java.version> </properties>pom.xml dosyasındaki
<plugins>koleksiyonuna jib-maven-plugin ekleyin. Bu örnek 3.2.0 sürümünü kullanır.<from>/<image>taban görüntüsünü,mcr.microsoft.com/openjdk/jdk:11-ubuntuburada belirtin.<to>/<image>tabanından oluşturulacak son görüntünün adını belirtin.Kimlik doğrulama
{docker.image.prefix}, daha önce gösterilen kayıt sayfasındaki oturum açma sunucusu'dir.{project.artifactId}, projenin ilk Maven derlemesinden JAR dosyasının adı ve sürüm numarasıdır.<plugin> <artifactId>jib-maven-plugin</artifactId> <groupId>com.google.cloud.tools</groupId> <version>${jib-maven-plugin.version}</version> <configuration> <from> <image>mcr.microsoft.com/openjdk/jdk:11-ubuntu</image> </from> <to> <image>${docker.image.prefix}/${project.artifactId}</image> </to> </configuration> </plugin>Spring Boot uygulamanızın tamamlanmış proje dizinine gidin ve uygulamayı yeniden derlemek ve kapsayıcıyı Azure Container Registry'nize göndermek için aşağıdaki komutu çalıştırın:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Not
komut
Görüntünüzü Azure Container Registry'ye göndermek için Jib kullanırken görüntü Dockerfile'ı kullanmaz. Ayrıntılar için bu belgesine bakın.
Kapsayıcı görüntünüzü kullanarak Azure App Service üzerinde Linux üzerinde web uygulaması oluşturma
azure portal
göz atın ve oturum açın. Kaynak oluştur menü simgesine tıklayın, ardından Hesaplaseçin ve Web Uygulamasıseçin.
Linux'ta Web Uygulaması sayfası görüntülendiğinde aşağıdaki bilgileri girin:
Açılan listeden Aboneliğinizi seçin.
mevcut bir
Kaynak Grubu seçin veya yeni bir kaynak grubu oluşturmak için bir ad belirtin. Uygulama adı için benzersiz bir ad girin; örneğin: wingtiptoyslinuxDocker Container'dan 'e'yi Yayınla olarak belirtin.İşletim Sistemi alanı için Linuxseçiniz.
bölgeseçin.
Linux Planı
kabul edin ve mevcut bir App Service Planı seçin veya yeni bir app service planı oluşturmak için Yeni oluştur'useçin. İleri: Dockeröğesine tıklayın.
Web App sayfasında Dockerseçin ve aşağıdaki bilgileri girin:
Tek Kapsayıcıseçin.
Kayıt Defteri: Konteynerinizi seçin, örneğin: wingtiptoysregistry.
Görüntü: Daha önce oluşturulan görüntüyü seçin, örneğin: spring-boot-docker.
Etiket: Görüntünün etiketini seçin, örneğin: en son.
Başlangıç Komutu: Görüntüde başlatma komutu zaten olduğundan bu komutu boş tutun
Yukarıdaki bilgilerin tümünü girdikten sonra, Gözden geçir + oluşturdüğmesini seçin.
- Gözden geçir ve oluşturseçin.
Bilgileri gözden geçirin veoluştur'u
Dağıtım tamamlandığında, Kaynağa gitseçeneğini belirleyin. Dağıtım sayfasında uygulamaya erişmek için URL görüntülenir.
URL'sini alma
Not
Azure, İnternet isteklerini 80 numaralı bağlantı noktasında çalışan ekli Tomcat sunucusuna otomatik olarak eşler. Ancak, katıştırılmış Tomcat sunucunuzu bağlantı noktası - 8080 veya özel bağlantı noktası üzerinde çalışacak şekilde yapılandırdıysanız, web uygulamanıza katıştırılmış Tomcat sunucunuz için bağlantı noktasını tanımlayan bir ortam değişkeni eklemeniz gerekir. Bunu yapmak için aşağıdaki adımları kullanın:
azure portal
göz atın ve oturum açın. Web Appssimgesini seçin ve App Services sayfasından uygulamanızı seçin.
Sol gezinti bölmesinde Yapılandırma'ni seçin.
Uygulama ayarları bölümünde, WEBSITES_PORT adlı yeni bir ayar ekleyin ve değer için özel bağlantı noktası numaranızı girin.
tamamseçin. Ardından Kaydetöğesini seçin.
Kaynakları temizleme
Artık gerekmediğinde, beklenmeyen ücretlerden kaçınmak için bu makalede oluşturulan kaynakları silmek için Azure portalı kullanın.
Sonraki adımlar
Spring ve Azure hakkında daha fazla bilgi edinmek için Azure'da Spring belge merkezine geçin.
Ayrıca bkz.
Azure'da Spring Boot uygulamalarını kullanma hakkında daha fazla bilgi için aşağıdaki makalelere bakın:
Azure'ı Java ile kullanma hakkında daha fazla bilgi için Java Geliştiricileri İçin Azure ve Azure DevOps ve Java ile Çalışma başlıklarına bakın.
Docker'da Spring Boot örnek projesi hakkında daha fazla bilgi için bkz. Docker'da Spring Boot Başlarken.
Spring Boot uygulamalarınıza başlamak için yardım almak istiyorsanız, adresinde yer alan https://start.spring.io/'ye bakın.
Basit bir Spring Boot uygulaması oluşturmaya başlama hakkında daha fazla bilgi için https://start.spring.io/'deki Spring Initializr konusuna bakın.
Azure ile özel Docker görüntülerini kullanma hakkında ek örnekler için bkz. Linux üzerinde Azure Web App için özel Docker görüntüsü kullanma .