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:
- Azure aboneliği; henüz Azure aboneliğiniz yoksa MSDN abone avantajlarınızı etkinleştirebilir veya ücretsiz Azure hesabı için kaydolabilirsiniz.
- Azure Komut Satırı Arabirimi (CLI).
- Desteklenen bir Java Development Kit (JDK). Azure'da geliştirme yaparken kullanılabilecek JDK'ler hakkında daha fazla bilgi için bkz . Azure ve Azure Stack'te Java desteği.
- Apache Maven derleme aracı (Sürüm 3).
- Git istemcisi.
- Docker istemcisi.
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.
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
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
Tamamlanmış projenin dizinine geçin; örneğin:
cd gs-spring-boot-docker/complete
Maven kullanarak JAR dosyasını oluşturun; örneğin:
mvn package
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
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
Şu iletinin görüntülendiğini görmeniz gerekir: Hello Docker World
Ö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.
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.
Yeni'nin menü simgesine tıklayın, Kapsayıcılar'ı ve ardından Azure Container Registry'yi seçin.
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.
Ayarlar altında Erişim anahtarları'nı seçin ve Yönetici kullanıcının arkasındaki Etkin anahtarını 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.
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>
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 (buradamcr.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>
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
- 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 . - 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
Azure portalına gidin ve oturum açın.
Kaynak oluştur menü simgesine tıklayın, İşlem'i ve ardından Web Uygulaması'nı seçin.
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.
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.
- 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.
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:
Azure portalına gidin ve oturum açın.
Web Apps simgesini seçin ve App Services sayfasından uygulamanızı seçin.
Sol gezinti bölmesinde Yapılandırma'ya tıklayın.
Uygulama ayarları bölümünde WEBSITES_PORT adlı yeni bir ayar ekleyin ve değer olarak özel bağlantı noktası numaranızı girin.
Tamam'ı seçin. Ardından Kaydet'i seçin.
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin