Menerapkan GlassFish aplikasi ke platform Docker: jalur migrasi ke Amazon Linux 2023 - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerapkan GlassFish aplikasi ke platform Docker: jalur migrasi ke Amazon Linux 2023

Tujuan dari tutorial ini adalah untuk menyediakan pelanggan yang menggunakan GlassFish platform Docker yang telah dikonfigurasi sebelumnya (berdasarkan Amazon Linux AMI) dengan jalur migrasi ke Amazon Linux 2023. Anda dapat memigrasikan GlassFish aplikasi Anda ke Amazon Linux 2023 dengan menerapkan GlassFish dan kode aplikasi Anda ke image Amazon Linux 2023 Docker.

Tutorial memandu Anda menggunakan platform AWS Elastic Beanstalk Docker untuk menyebarkan aplikasi berdasarkan server GlassFish aplikasi Java EE ke lingkungan Elastic Beanstalk.

Kami menunjukkan dua pendekatan untuk membangun gambar Docker:

  • Sederhana - Berikan kode sumber GlassFish aplikasi Anda dan biarkan Elastic Beanstalk membangun dan menjalankan image Docker sebagai bagian dari penyediaan lingkungan Anda. Ini mudah disiapkan, dengan biaya waktu penyediaan instans yang meningkat..

  • Lanjutan— Buat gambar Docker kustom yang berisi kode aplikasi dan dependensi Anda, dan berikan ke Elastic Beanstalk untuk digunakan di lingkungan Anda. Pendekatan ini sedikit lebih terlibat, dan mengurangi waktu penyediaan contoh di lingkungan Anda.

Prasyarat

Tutorial ini mengasumsikan bahwa Anda memiliki pengetahuan tentang operasi Elastic Beanstalk, Elastic antarmuka baris perintah (EB CLI), dan Docker. Jika belum, ikuti petunjuk diMemulai menggunakan Elastic Beanstalkuntuk meluncurkan lingkungan Elastic Beanstalk pertama Anda. Tutorial ini menggunakan EB CLI, tetapi Anda juga dapat membuat lingkungan dan meng-upload aplikasi dengan menggunakan konsol Elastic Beanstalk.

Untuk mengikuti tutorial ini, Anda juga akan membutuhkan komponen Docker berikut:

  • Instalasi lokal Docker yang berfungsi. Untuk informasi lebih lanjut, lihat Dapatkan Docker di situs web dokumentasi Docker.

  • Akses ke Docker Hub. Anda harus membuat Docker ID untuk mengakses Docker Hub. Untuk informasi lebih lanjut, lihat Bagikan aplikasi di situs web dokumentasi Docker.

Untuk mempelajari lebih lanjut tentang mengkonfigurasi lingkungan Docker pada platform Elastic Beanstalk, lihat Konfigurasi bucket dalam bab yang sama ini.

Contoh sederhana: berikan kode aplikasi Anda

Ini adalah cara mudah untuk menyebarkan GlassFish aplikasi Anda. Anda memberikan kode sumber aplikasi Anda bersama dengan DockerfileTermasuk dalam tutorial ini. Elastic Beanstalk membangun gambar Docker yang mencakup aplikasi Anda dan tumpukan perangkat lunak. GlassFish Kemudian Elastic Beanstalk menjalankan gambar pada contoh lingkungan Anda.

Masalah dengan pendekatan ini adalah bahwa Elastic Beanstalk menggambar Docker lokal setiap kali menciptakan sebuah contoh untuk lingkungan Anda. Pembuatan gambar meningkatkan waktu penyediaan instans. Dampak ini tidak terbatas pada pembuatan lingkungan awal—hal ini juga terjadi selama tindakan skale-out.

Untuk meluncurkan lingkungan dengan contoh GlassFish aplikasi
  1. Unduh contoh docker-glassfish-al2-v1.zip, dan kemudian perluas file .zip ke dalam direktori di lingkungan pengembangan Anda.

    ~$ curl https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/samples/docker-glassfish-al2-v1.zip --output docker-glassfish-al2-v1.zip ~$ mkdir glassfish-example ~$ cd glassfish-example ~/glassfish-example$ unzip ../docker-glassfish-al2-v1.zip

    Struktur direktori Anda harus sebagai berikut.

    ~/glassfish-example |-- Dockerfile |-- Dockerrun.aws.json |-- glassfish-start.sh |-- index.jsp |-- META-INF | |-- LICENSE.txt | |-- MANIFEST.MF | `-- NOTICE.txt |-- robots.txt `-- WEB-INF `-- web.xml

    File - file berikut adalah kunci untuk membuat dan menjalankan kontainer Docker di lingkungan Anda:

    • Dockerfile— Menyediakan instruksi yang Docker gunakan untuk membuat gambar dengan aplikasi Anda dan dependensi yang diperlukan.

    • glassfish-start.sh— Skrip shell yang dijalankan oleh image Docker untuk memulai aplikasi Anda.

    • Dockerrun.aws.json— Menyediakan kunci logging, untuk memasukkan log server GlassFish aplikasi dalam permintaan file log. Jika Anda tidak tertarik dengan GlassFish log, Anda dapat menghilangkan file ini.

  2. Mengkonfigurasi direktori lokal Anda untuk diterapkan ke Elastic Beanstalk.

    ~/glassfish-example$ eb init -p docker glassfish-example
  3. (Opsional) Gunakan perintah eb local run untuk membuat dan menjalankan kontainer Anda secara lokal.

    ~/glassfish-example$ eb local run --port 8080
    catatan

    Untuk mempelajari lebih lanjut tentang eb local, perintah lihat eb local. Perintah tidak didukung pada Windows. Atau, Anda dapat membuat dan menjalankan kontainer Anda dengan perintah docker build dan docker run. Untuk informasi lebih lanjut, lihat Dokumentasi Docker .

  4. (Opsional) Saat kontainer Anda berjalan, gunakan perintah eb local open untuk melihat aplikasi Anda di peramban web. Alternatif lainnya, buka http://localhost:8080/ di peramban web.

    ~/glassfish-example$ eb local open
  5. Gunakan perintah eb create untuk menciptakan lingkungan dan menyebarkan aplikasi Anda.

    ~/glassfish-example$ eb create glassfish-example-env
  6. Setelah lingkungan Anda diluncurkan, gunakan perintah eb open untuk melihatnya di peramban web.

    ~/glassfish-example$ eb open

Ketika Anda selesai bekerja dengan contoh, akhiri lingkungan dan hapus sumber daya terkait.

~/glassfish-example$ eb terminate --all

Contoh lanjutan: berikan gambar docker yang sudah dibangun sebelumnya

Ini adalah cara yang lebih canggih untuk menyebarkan GlassFish aplikasi Anda. Berdasarkan contoh pertama, Anda membuat image Docker yang berisi kode aplikasi dan tumpukan GlassFish perangkat lunak, dan mendorongnya ke Docker Hub. Setelah Anda melakukan langkah satu kali ini, Anda dapat meluncurkan lingkungan Elastic Beanstalk berdasarkan gambar kustom Anda.

Ketika Anda meluncurkan lingkungan dan memberikan gambar Docker Anda, misalnya di lingkungan Anda mengunduh dan gunakan gambar ini secara langsung dan tidak perlu untuk membangun gambar Docker. Oleh karena itu, waktu penyediaan instance berkurang.

Catatan
  • Langkah-langkah berikut membuat gambar Docker yang tersedia untuk umum.

  • Anda akan menggunakan perintah Docker dari instalasi Docker lokal Anda, bersamaan dengan mandat Docker Hub Anda. Untuk informasi selengkapnya, lihat bagian Prasyarat sebelumnya dalam topik ini.

Untuk meluncurkan lingkungan dengan image Docker GlassFish aplikasi bawaan
  1. Unduh dan perluas contoh docker-glassfish-al2-v1.zip seperti pada contoh sederhanasebelumnya. Jika Anda telah menyelesaikan contoh tersebut, Anda dapat menggunakan direktori yang sudah Anda miliki.

  2. Membuat gambar Docker dan Mendorong ke Docker Hub. Masukkan ID Docker untuk docker-id guna masuk ke Docker Hub.

    ~/glassfish-example$ docker build -t docker-id/beanstalk-glassfish-example:latest . ~/glassfish-example$ docker push docker-id/beanstalk-glassfish-example:latest
    catatan

    Sebelum mendorong gambar, Anda mungkin harus menjalankan docker login. Anda akan diminta untuk kredensial Docker Hub Anda jika Anda menjalankan perintah tanpa parameter.

  3. Membuat direktori tambahan.

    ~$ mkdir glassfish-prebuilt ~$ cd glassfish-prebuilt
  4. Menyalin contoh berikut ke dalam sebuah file bernama Dockerrun.aws.json.

    contoh ~/glassfish-prebuilt/Dockerrun.aws.json
    { "AWSEBDockerrunVersion": "1", "Image": { "Name": "docker-username/beanstalk-glassfish-example" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8080 } ], "Logging": "/usr/local/glassfish5/glassfish/domains/domain1/logs" }
  5. Mengkonfigurasi direktori lokal Anda untuk deployment ke Elastic Beanstalk.

    ~/glassfish-prebuilt$ eb init -p docker glassfish-prebuilt$
  6. (Opsional) Gunakan perintah eb local run untuk menjalankan kontainer Anda secara lokal.

    ~/glassfish-prebuilt$ eb local run --port 8080
  7. (Opsional) Saat kontainer Anda berjalan, gunakan perintah eb local open untuk melihat aplikasi Anda di peramban web. Alternatif lainnya, buka http://localhost:8080/ di peramban web.

    ~/glassfish-prebuilt$ eb local open
  8. Gunakan perintah eb create untuk membuat lingkungan dan menyebarkan gambar Docker Anda.

    ~/glassfish-prebuilt$ eb create glassfish-prebuilt-env
  9. Setelah lingkungan Anda diluncurkan, gunakan perintah eb open untuk melihatnya di peramban web.

    ~/glassfish-prebuilt$ eb open

Ketika Anda selesai bekerja dengan contoh, akhiri lingkungan dan hapus sumber daya terkait.

~/glassfish-prebuilt$ eb terminate --all