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

Bu öğretici, Docker'ı kullanarak Spring Boot uygulamanızı kapsayıcıya almayı ve kendi Docker görüntünüzü Azure App Service içindeki bir Linux konağına dağıtmayı gösterir.

Önkoşullar

Bu öğreticideki adımları tamamlamak için aşağıdaki önkoşullara ihtiyacınız vardır:

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; örneğin:

    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 target bulunduğu dizinle değiştirin ve web uygulamasını başlatın; örneğin:

    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örürsünüz: Hello Docker World

    Örnek Uygulamaya Yerel Olarak Gözat

Özel Docker kayıt defteri olarak kullanmak için 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'a gidin ve oturum açın.

    Azure portalında hesabınızda oturum açtığınızda, Azure portalı kullanarak özel Docker kapsayıcı kayıt defteri oluşturma makalesindeki adımları izleyin. Aşağıdaki adımlar, zaman kazanmak adına bu yönergeleri yeniden ifade eder.

  2. Yeni'nin menü simgesini seçin, Kapsayıcılar'ı ve ardından Azure Container Registry'ı seçin.

    Yeni bir Azure Container Registry oluşturma

  3. Kapsayıcı kayıt defteri oluştur sayfası görüntülendiğinde Kayıt defteri adı, Abonelik, Kaynak grubu ve Konum girin. Ardından oluştur'i seçin.

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

  4. Ayarlar'ın altında Erişim anahtarları'nı seçin ve Yönetici kullanıcı için Etkin anahtarını 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. Bu öğreticinin önceki bölümündeki jib-maven-plugin öğesinin en son sürümü, oturum açma sunucusu değeri ve Azure Container Registry erişim ayarlarıyla pom.xml dosyasındaki <properties> koleksiyonunu 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. jib-maven-plugin öğesini <plugins> dosyasındaki koleksiyonuna 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> içindeki temel imajdan oluşturulacak son imajın adını belirtin.

    Kimlik doğrulaması {docker.image.prefix} , daha önce gösterilen kayıt defteri sayfasındaki Oturum açma sunucusudur . {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 göndermek için aşağıdaki komutu çalıştırın:

    az acr login --name wingtiptoysregistry && mvn compile jib:build
    

Not

az acr login ... komutu Azure Container Registry'de oturum açmaya çalışır. Aksi takdirde, <username> için <password> ve jib-maven-plugin sağlamanız gerekir. Daha fazla bilgi edinmek için bkz. Jib'de Kimlik Doğrulama Yöntemleri .

Görüntünüzü Azure Container Registry göndermek için Jib kullandığınızda, görüntü Dockerfile'ı kullanmaz. Daha fazla bilgi için bu makaleye bakın.

Kapsayıcı görüntünüzü kullanarak Azure App Service üzerinde Linux üzerinde web uygulaması oluşturma

  1. Azure portal'a gidin ve oturum açın.

  2. Kaynak oluştur menü simgesini seçin, İşlem'i ve ardından Web Uygulaması'nı 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çin benzersiz 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'ı seçin.

    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ş bırakın.

    Önceki tüm bilgileri girdikten sonra Gözden geçir ve oluştur'u 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 git seç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 8080 numaralı bağlantı noktasında veya özel bir bağlantı noktasında çalışacak şekilde yapılandırdığınızda, web uygulamanıza katıştırılmış Tomcat sunucunuz için bağlantı noktasını tanımlayan bir ortam değişkeni eklemeniz gerekir. Ortam değişkenini eklemek için aşağıdaki adımları kullanın:

  1. Azure portal'a gidin 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

Kaynaklara artık ihtiyacınız kalmadığında, bunları silmek için Azure portalını kullanın. Kaynakları silmek beklenmeyen ücretlerden kaçınmanıza yardımcı olur.

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 daha fazla örnek için bkz. Linux'ta Azure Web Uygulaması için özel Docker görüntüsü kullanma.