Aracılığıyla paylaş


Azure App Service'te Linux'a Spring Boot uygulaması dağıtma

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.

  1. 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 SpringBoot
    
  2. Docker'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.git
    
  3. Dizini tamamlanmış proje olarak değiştirin; mesela:

    cd gs-spring-boot-docker/complete
    
  4. Maven kullanarak JAR dosyasını oluşturun; mesela:

    mvn package
    
  5. Web uygulaması oluşturulduktan sonra dizini JAR dosyasının bulunduğu target diziniyle 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=80
    
  6. Web 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
    
  7. Şu iletiyi görmeniz gerekir: Hello Docker World

    Örnek Uygulamaya Yerel Olarak Gözat

Ö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.

  1. 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.

  2. Yenimenü simgesine tıklayın, ardındanKapsayıcılar öğesini veAzure Container Registry 'i seçin.

    Yeni bir Azure Container Registry oluşturma

  3. Kapsayıcı kayıt defteri oluşturma sayfası ( ) görüntülendiğinde, Kayıt Defteri adı, Abonelik, Kaynak grubuve Konumbilgilerini girin. Ardından oluştur'i seçin.

    Azure Container Registry ayarlarını yapılandırma

  4. Erişim anahtarları altında Ayarlar seçin ve Yönetici kullanıcıarkasındaki Etkin düğmesini açın.

    Azure portalında yönetici kullanıcı arabirimini etkinleştirme

Maven'ı Azure Container Registry'nize görüntü oluşturacak şekilde yapılandırma

  1. 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.

  2. <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>
    
  3. 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>
    
  4. 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 Azure Container Registry'de oturum açmayı dener, aksi takdirde jib-maven-plugin için ve sağlamanız gerekir. Bkz. jib'de kimlik doğrulama yöntemleri .

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

  1. azure portal göz atın ve oturum açın.

  2. Kaynak oluştur menü simgesine tıklayın, ardından Hesaplaseçin ve Web Uygulamasıseçin.

    Azure portalında yeni bir web uygulaması oluşturma

  3. 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çinbenzersiz bir ad girin; örneğin: wingtiptoyslinux

    • Docker 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'u seçin.

    • İleri: Dockeröğesine tıklayın.

    devam etmek için İleri: Docker düğmesine 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ştur'u seçerek bitirin.

    • Gözden geçir ve oluşturseçin.

Bilgileri gözden geçirin veoluştur'u seçin.

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.

Dağıtım 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:

  1. azure portal göz atın ve oturum açın.

  2. Web Appssimgesini seçin ve App Services sayfasından uygulamanızı seçin.

  3. Sol gezinti bölmesinde Yapılandırma'ni seçin.

  4. 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.

  5. tamamseçin. Ardından Kaydetöğesini seçin.

Azure portalında özel bağlantı noktası numarası kaydetme

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 .