Azure App Service’te Linux’a Spring Boot uygulaması Dağıtma

Bu öğretici Docker kullanarak Spring Boot uygulamanızı kapsayıcılı hale getirme ve Azure App Service’te kendi Docker görüntünüzü Linux konağına dağıtma işlemlerinde size yol gösterir.

Önkoşullar

Bu öğreticideki adımları tamamlamak için aşağıdaki önkoşullara uymalısınız:

Not

Bu öğreticinin sanallaştırma gereksinimlerinden dolayı, bu makaledeki adımları bir sanal makinede izleyemezsiniz; sanallaştırma özellikleri etkinleştirilmiş bir fiziksel bilgisayar kullanmanız gerekir.

Docker üzerinde Spring Boot'u Kullanmaya Başlama web uygulamasını oluşturma

Aşağıdaki adımlar basit bir Spring Boot web uygulaması oluşturmak ve bu uygulamayı yerel olarak test etmek için gereken adımlarda yol gösterir.

  1. Komut istemini açın ve uygulamanızı barındıracak bir yerel dizin oluşturun ve söz konusu dizine geçin; örneğin:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Docker üzerinde Spring Boot'u Kullanmaya Başlama örnek projesini oluşturduğunuz dizine kopyalayın; örneğin:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Tamamlanmış projenin dizinine geçin; örneğin:

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

    mvn package
    
  5. Web uygulaması oluşturulduktan sonra JAR dosyasının yer aldığı target dizinine geçin 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ı kullanıp web uygulamasına yerel olarak göz atarak uygulamayı test edin. Örneğin curl kullanılabiliyorsa ve Tomcat sunucusunu 80 numaralı bağlantı noktası üzerinde çalışacak şekilde yapılandırdıysanız:

    curl http://localhost
    
  7. Şu iletinin görüntülendiğini görmeniz gerekir: Hello Docker World

    Browse Sample App Locally

Özel Docker Kayıt Defteri olarak kullanmak için bir Azure Container Registry oluşturma

Aşağıdaki adımlar Azure portalını kullanarak Azure Container Registry oluşturma işleminde yol gösterir.

Not

Azure portalı yerine Azure CLI’yı kullanmak istiyorsanız, Azure CLI 2.0’ı kullanarak özel Docker kapsayıcı kayıt defteri oluşturma başlığı altındaki adımları izleyin.

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

    Azure portalında hesabınızda oturum açtıktan sonra, azure portalını kullanarak özel docker kapsayıcı kayıt defteri oluşturma makalesindeki adımları izleyin. Bu makale, daha fazla bilgi için aşağıdaki adımlarda açıklanmıştır.

  2. Yeni'nin menü simgesine tıklayın, Kapsayıcılar'ı ve ardından Azure Container Registry'yi seçin.

    Create a new Azure Container Registry

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

    Configure Azure Container Registry settings

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

    Enable admin user UI in the Azure portal

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. Pom.xml dosyasındaki <properties> koleksiyonunu en son jib-maven-plugin sürümüyle, oturum açma sunucu değeriyle ve bu öğreticinin önceki bölümünden Azure Container Registry’nizin erişim ayarlarıyla güncelleştirin. Örneğin:

    <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 öğesini ekleyin. Bu örnek 3.2.0 sürümünü kullanır.

    <from>/<image> konumundaki temel görüntüyü belirtin (burada mcr.microsoft.com/openjdk/jdk:11-ubuntu). <to>/<image> konumundaki temel görüntüden derlenecek son görüntünün adını belirtin.

    {docker.image.prefix} kimlik doğrulaması, daha önce gösterilen kayıt defteri sayfasındaki Oturum açma sunucusu’dur. {project.artifactId}, projenin ilk Maven derlemesinden alınan 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 için tamamlanmış proje dizinine gidin ve aşağıdaki komutu çalıştırarak uygulamayı yeniden derleyin ve kapsayıcıyı Azure Container Registry’nize gönderin:

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

Not

  1. Komut az acr login ... Azure Container Registry'de oturum açmayı dener, aksi takdirde jib-maven-plugin sağlamanız <username><password> gerekir. Bkz . Jib'de Kimlik Doğrulama Yöntemleri .
  2. 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 belgeye bakın.

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

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

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

    Create a new web app in the Azure portal

  3. Linux Üzerinde Web App sayfası görüntülendiğinde aşağıdaki bilgileri girin:

    • Açılan listeden Aboneliğinizi seçin.

    • Mevcut Kaynak Grubu’nu seçin veya bir ad belirterek yeni kaynak grubu oluşturun.

    • Uygulama adı olarak benzersiz bir ad girin; örneğin: "wingtiptoyslinux"

    • Yayımlamak için Docker Container öğesini belirtin.

    • İşletim Sistemi olarak Linux’ı seçin.

    • Bölge seçin.

    • Linux Planı'nı kabul edin ve mevcut bir App Service Planını seçin veya Yeni oluştur'u seçerek yeni bir app service planı oluşturun.

    • İleri: Docker'a tıklayın.

    Click the Next: Docker button to proceed.

    Web Uygulaması sayfasında Docker’ı seçin ve aşağıdaki bilgileri girin:

    • Tek Kapsayıcı’yı seçin.

    • Kayıt defteri: Kapsayıcınızı 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: "latest"

    • 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 ve oluştur'u seçin.

    Finish by selecting Review + Create.

    • Gözden geçir ve oluştur’u seçin.

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

Dağıtım tamamlandığında Kaynağa git'i seçin. Dağıtım sayfasında uygulamaya erişmek için kullanılacak URL görüntülenir.

Get URL of deployment

Not

Azure İnternet isteklerini otomatik olarak 80 numaralı bağlantı noktaları üzerinde çalışan ekli Tomcat sunucusuna eşler. Bununla birlikte ekli Tomcat sunucunuzu 8080 numaralı ya da özel bir bağlantı noktası üzerinde çalışacak şekilde yapılandırdıysanız ekli Tomcat sunucusunun bağlantı noktasını tanımlayan ortam değişkenini web uygulamanıza eklemelisiniz. Bunu yapmak için aşağıdaki adımları kullanın:

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

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

  3. Sol gezinti bölmesinde Yapılandırma'ya tıklayın.

  4. Uygulama ayarları bölümünde WEBSITES_PORT adlı yeni bir ayar ekleyin ve değer olarak özel bağlantı noktası numaranızı girin.

  5. Tamam'ı seçin. Ardından Kaydet'i seçin.

Saving a custom port number in the Azure portal

Kaynakları temizleme

Artık gerekli olmadığında, beklenmeyen ücretlerden kaçınmak için Azure portalını kullanarak bu makalede oluşturulmuş olan kaynakları silin.

Sonraki adımlar

Spring ve Azure hakkında daha fazlasını öğrenmek için Azure’da Spring belge merkezinde çalışmaya devam edin.

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 bkz. Java Geliştiricileri için Azure ve Azure DevOps ve Java ile Çalışma.

Docker üzerinde Spring Boot örnek projesi hakkındaki diğer ayrıntılar için bkz. Docker üzerinde Spring Boot'u Kullanmaya Başlama.

Kendi Spring Boot uygulamalarınızı oluşturmaya başlarken yardımcı olması için https://start.spring.io/ konumundaki Spring Initializr konusuna bakın.

Basit bir Spring Boot uygulaması oluşturmaya başlama hakkında daha fazla bilgi için https://start.spring.io/ konumundaki Spring Initializr konusuna bakın.

Azure ile özel Docker görüntülerini kullanmaya yönelik ek örnekler için bkz. Linux üzerinde Azure Web Uygulaması için özel Docker görüntüsü kullanma.