Menyebarkan aplikasi Spring Boot ke Linux di Azure App Service

Tutorial ini membahas cara menggunakan Docker untuk memasukkan aplikasi Spring Boot ke dalam kontainer dan menyebarkan gambar docker ke host Linux di Azure App Service.

Prasyarat

Untuk menyelesaikan langkah-langkah dalam tutorial ini, Anda harus memiliki prasyarat berikut:

Catatan

Karena persyaratan virtualisasi dari tutorial ini, Anda tidak dapat mengikuti langkah-langkah dalam artikel ini di mesin virtual; Anda harus menggunakan komputer fisik dengan fitur virtualisasi diaktifkan.

Membuat Spring Boot di aplikasi web Memulai Docker

Langkah-langkah berikut membahas langkah-langkah yang diperlukan untuk membuat aplikasi web Spring Boot sederhana dan mengujinya secara lokal.

  1. Buka perintah dan buat direktori lokal untuk menyimpan aplikasi Anda, dan ubah ke direktori itu; misalnya:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Klon proyek sampel Memulai Spring Boot di Docker ke direktori yang Anda buat; misalnya:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Ubah direktori ke proyek yang sudah selesai; misalnya:

    cd gs-spring-boot-docker/complete
    
  4. Bangun file JAR menggunakan Maven; misalnya:

    mvn package
    
  5. Setelah aplikasi web dibuat, ubah direktori ke direktori target tempat file JAR berada dan mulai aplikasi web; misalnya:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. Uji aplikasi web dengan menelusurinya secara lokal menggunakan browser web. Misalnya, jika Anda memiliki curl yang tersedia dan Anda mengonfigurasi server Tomcat untuk berjalan pada port 80:

    curl http://localhost
    
  7. Anda akan melihat pesan berikut ditampilkan: Halo Dunia Docker

    Browse Sample App Locally

Membuat Azure Container Registry untuk digunakan sebagai Registri Docker Privat

Langkah-langkah berikut membahas penggunaan portal Azure untuk membuat Azure Container Registry.

Catatan

Jika Anda ingin menggunakan Azure CLI daripada portal Azure, ikuti langkah-langkah dalam Membuat registri kontainer Docker privat menggunakan Azure CLI 2.0.

  1. Telusuri portal Azure, lalu masuk.

    Setelah berhasil masuk ke akun Anda di portal Azure, ikuti langkah-langkah dalam artikel Membuat registri kontainer Docker privat menggunakan portal Azure, yang diuraikan dalam langkah-langkah berikut untuk penjelasan lebih singkat.

  2. Klik ikon menu untuk Baru, pilih Kontainer, lalu pilih Azure Container Registry.

    Create a new Azure Container Registry

  3. Saat halaman Buat registri kontainer ditampilkan, masukkan Nama registri, Langganan, Grup sumber daya, dan Lokasi. Kemudian pilih Buat.

    Configure Azure Container Registry settings

  4. Pilih Kunci akses di bawah Pengaturan dan nyalakan tombol Diaktifkan di balik Pengguna admin.

    Enable admin user UI in the Azure portal

Mengonfigurasi Maven untuk membangun gambar ke Azure Container Registry Anda

  1. Navigasikan ke direktori proyek yang telah selesai untuk aplikasi Spring Boot Anda, (misalnya: "C:\SpringBoot\gs-spring-boot-docker\complete" atau "/users/robert/SpringBoot/gs-spring-boot-docker/complete"), dan buka file pom.xml dengan editor teks.

  2. Perbarui koleksi <properties> dalam file pom.xml dengan versi terbaru dari jib-maven-plugin, nilai server login, dan pengaturan akses untuk Azure Container Registry Anda dari bagian sebelumnya dari tutorial ini. Contohnya:

    <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. Tambahkan jib-maven-plugin ke koleksi <plugins> dalam file pom.xml. Contoh ini menggunakan versi 3.2.0.

    Tentukan gambar dasar di <from>/<image>, di sini mcr.microsoft.com/java/jre:8-zulu-alpine. Tentukan nama gambar akhir yang akan dibangun dari dasar di <to>/<image>.

    Autentikasi {docker.image.prefix} adalah Server login pada halaman registri yang ditampilkan sebelumnya. {project.artifactId} adalah nama dan nomor versi file JAR dari pembangunan proyek Maven pertama.

    <plugin>
      <artifactId>jib-maven-plugin</artifactId>
      <groupId>com.google.cloud.tools</groupId>
      <version>${jib-maven-plugin.version}</version>
      <configuration>
         <from>
             <image>mcr.microsoft.com/java/jre:8-zulu-alpine</image>
         </from>
         <to>
             <image>${docker.image.prefix}/${project.artifactId}</image>
         </to>
      </configuration>
    </plugin>
    
  4. Navigasikan ke direktori proyek yang telah selesai untuk aplikasi Spring Boot Anda dan jalankan perintah berikut untuk membangun kembali aplikasi dan mendorong kontainer ke Azure Container Registry Anda:

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

Catatan

  1. Perintah az acr login ... akan mencoba masuk ke Azure Container Registry, jika tidak, Anda harus menyediakan <username> dan <password> untuk jib-maven-plugin, lihat Metode Autentikasi di jib.
  2. Saat Anda menggunakan Jib untuk mendorong gambar Anda ke Azure Container Registry, gambar tidak akan menggunakan Dockerfile, lihat dokumen ini untuk detailnya.

Membuat aplikasi web di Linux di Azure App Service menggunakan gambar kontainer Anda

  1. Telusuri portal Azure, lalu masuk.

  2. Klik ikon menu Buat sumber daya, pilih Komputasi, lalu pilih Aplikasi Web.

    Create a new web app in the Azure portal

  3. Saat halaman Aplikasi Web di Linux ditampilkan, masukkan informasi berikut:

    • Pilih Langganan Anda dari daftar drop-down.

    • Pilih Grup Sumber Daya yang sudah ada, atau tentukan nama untuk membuat grup sumber daya baru.

    • Masukkan nama yang unik untuk Nama aplikasi; misalnya: "wingtiptoyslinux"

    • Tentukan Docker Container untuk Terbitkan.

    • Pilih Linux sebagai Sistem Operasi.

    • Pilih Wilayah.

    • Terima Paket Linux dan pilih Paket App Service yang ada, atau pilih Buat baru untuk membuat paket layanan aplikasi baru.

    • Klik Berikutnya: Docker.

    Click the Next: Docker button to proceed.

    Pada halaman Aplikasi Web pilih Docker, dan masukkan informasi berikut:

    • Pilih Kontainer Tunggal.

    • Registri: Pilih kontainer Anda, misalnya: "wingtiptoysregistry"

    • Gambar: Pilih gambar yang dibuat sebelumnya, misalnya: "spring-boot-docker"

    • Tag: Pilih tag untuk gambar; misalnya: "latest"

    • Perintah Startup: Kosongkan karena gambar sudah memiliki perintah start up

    Setelah Anda memasukkan semua informasi di atas, pilih Ulas + buat.

    Finish by selecting Review + Create.

    • Klik Ulas + buat.

Tinjau informasi dan pilih Buat.

Saat penyebaran selesai, pilih Buka sumber daya. Halaman penyebaran menampilkan URL untuk mengakses aplikasi.

Get URL of deployment

Catatan

Azure akan secara otomatis memetakan permintaan Internet ke server Tomcat tersemat yang berjalan di port - 80. Namun, jika Anda mengonfigurasi server Tomcat tersemat untuk berjalan di port - 8080 atau port kustom, Anda perlu menambahkan variabel lingkungan ke aplikasi web yang menentukan port untuk server Tomcat tersemat Anda. Untuk melakukannya, gunakan langkah-langkah berikut:

  1. Telusuri portal Azure, lalu masuk.

  2. Pilih ikon untuk Aplikasi Web, dan pilih aplikasi Anda dari halaman App Services.

  3. Pilih Konfigurasi di panel navigasi kiri.

  4. Di bagian Pengaturan aplikasi, tambahkan pengaturan baru bernama WEBSITES_PORT dan masukkan nomor port kustom Anda untuk nilainya.

  5. PilihOK. Lalu pilih Simpan.

Saving a custom port number in the Azure portal

Membersihkan sumber daya

Bila tidak lagi diperlukan, gunakan portal Azure untuk menghapus sumber daya yang dibuat dalam artikel ini untuk menghindari biaya tak terduga.

Langkah berikutnya

Untuk mempelajari selengkapnya tentang Spring dan Azure, lanjutkan ke pusat dokumentasi Spring di Azure.

Sumber Daya Tambahan:

Untuk informasi selengkapnya tentang cara menggunakan aplikasi Spring Boot di Azure, lihat artikel berikut:

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Azure dengan Java, lihat Azure for Java Developers dan Bekerja dengan Azure DevOps dan Java.

Untuk detail lebih lanjut tentang proyek sampel Spring Boot di Docker, lihat Memulai Spring Boot di Docker.

Untuk bantuan memulai dengan aplikasi Spring Boot Anda, lihat Spring Initializr di https://start.spring.io/.

Untuk informasi selengkapnya tentang memulai dengan membuat aplikasi Spring Boot sederhana, lihat di https://start.spring.io/.

Untuk contoh tambahan cara menggunakan gambar Docker kustom dengan Azure, lihat Menggunakan gambar Docker kustom untuk Aplikasi Web Azure di Linux.