1. قبل از شروع
Google یک ابزار قدرتمند ساخت تصویر ارائه میکند که با آن میتوانید به راحتی یک تصویر ظرف Docker بهینهسازی شده برای برنامههای جاوا را در کمترین زمان و بدون Docker یا Dockerfile بسازید و منتشر کنید. Google Cloud همچنین بدون سرور را با Cloud Run به کانتینرها می آورد، یک پلت فرم محاسباتی مدیریت شده که به طور خودکار کانتینرهای بدون حالت شما را مقیاس می کند. در این لبه کد، خواهید دید که چقدر آسان است که برنامه Spring Boot Kotlin خود را در ظرف قرار دهید، آن را در Container Registry منتشر کنید و تصویر را در Google Cloud به صورت یکپارچه اجرا کنید!
این برنامه کد شما را در راهاندازی یک برنامه ساده در Kotlin راهنمایی میکند که استفاده از سرویسها و ابزارهای Google Cloud از جمله Jib ، Container Registry و Cloud Run را نشان میدهد.
پیش نیازها
- آشنایی با زبان و ابزارهای برنامه نویسی جاوا
- آشنایی با ویرایشگرهای متن استاندارد لینوکس مانند Vim، Emacs و nano
کاری که خواهی کرد
- یک برنامه Spring Boot Kotlin راه اندازی کنید.
- یک تصویر Docker بهینه بسازید.
- تصویر را در Container Registry منتشر کنید.
- برنامه کانتینری را در Cloud Run اجرا کنید.
آنچه شما نیاز دارید
- یک پروژه Google Cloud
- یک مرورگر، مانند گوگل کروم
2. راه اندازی
تنظیم محیط خود به خود
- به کنسول Cloud وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
شناسه پروژه را به خاطر بسپارید، یک نام منحصر به فرد در تمام پروژه های Google Cloud (نام بالا قبلاً گرفته شده است و برای شما کار نخواهد کرد، متأسفیم!). بعداً در این آزمایشگاه کد به عنوان PROJECT_ID
نامیده خواهد شد.
- در مرحله بعد، برای استفاده از منابع Google Cloud، باید صورتحساب را در Cloud Console فعال کنید .
اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. حتماً دستورالعملهای موجود در بخش «تمیز کردن» را دنبال کنید که به شما توصیه میکند چگونه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
پوسته ابری
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Cloud Shell استفاده می کنید، یک محیط خط فرمان که در Google Cloud اجرا می شود.
Cloud Shell را فعال کنید
- از Cloud Console، روی Activate Cloud Shell کلیک کنید .
اگر قبلاً Cloud Shell را راهاندازی نکردهاید، یک صفحه میانی (در زیر تاشو) برای شما نمایش داده میشود که آن را توصیف میکند. اگر اینطور است، روی Continue کلیک کنید (و دیگر آن را نخواهید دید). در اینجا به نظر می رسد که آن صفحه یک بار مصرف:
تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.
این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز شما بارگذاری شده است. این دایرکتوری اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد شبکه و احراز هویت را بسیار افزایش می دهد. بیشتر، اگر نه همه، کار شما در این کد لبه را می توان به سادگی با یک مرورگر یا Chromebook انجام داد.
پس از اتصال به Cloud Shell، باید ببینید که قبلاً احراز هویت شده اید و پروژه قبلاً روی ID پروژه شما تنظیم شده است.
- برای تایید احراز هویت، دستور زیر را در Cloud Shell اجرا کنید:
gcloud auth list
خروجی فرمان
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- دستور زیر را در Cloud Shell اجرا کنید تا تأیید کنید که دستور gcloud از پروژه شما اطلاع دارد:
gcloud config list project
خروجی فرمان
[core] project = <PROJECT_ID>
اگر اینطور نیست، می توانید آن را با این دستور تنظیم کنید:
gcloud config set project <PROJECT_ID>
خروجی فرمان
Updated property [core/project].
3. یک برنامه Spring Boot را راه اندازی کنید
- با Spring Initializr یک برنامه Spring Boot جدید ایجاد کنید.
$ curl https://start.spring.io/starter.tgz \ -d language=kotlin \ -d dependencies=web \ -d baseDir=kotlin-jib-cloud-run | tar -xzvf -
توجه داشته باشید که Initializr به طور خودکار spring-boot-starter-web
به وابستگی های شما در pom.xml
برنامه قالب اضافه می کند.
- به دایرکتوری برنامه الگو تغییر دهید.
$ cd kotlin-jib-cloud-run
- برنامه را با استفاده از Maven بسازید و اجرا کنید.
$ ./mvnw -DskipTests spring-boot:run
- پس از شروع، برنامه شروع به گوش دادن در پورت 8080 می کند. پیش نمایش وب را کلیک کنید در نوار ابزار Cloud Shell و انتخاب Preview در پورت 8080 برای دسترسی به برنامه.
- شما باید یک پاسخ 404 دریافت کنید زیرا برنامه هنوز هیچ کار مفیدی انجام نمی دهد. برنامه را با
Control+C
متوقف کنید.
4. یک کنترلر وب اضافه کنید
- کلاس
Controller
زیر را در بسته دمو ایجاد کنید:
$ vi src/main/kotlin/com/example/demo/Controller.kt or $ nano src/main/kotlin/com/example/demo/Controller.kt
src/main/kotlin/com/example/demo/Controller.kt
package com.example.demo
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
@RestController
class Controller {
@GetMapping("/")
fun saySomething(): String {
return "Kotlin app on Cloud Run, containerized by Jib!"
}
}
- برنامه را بازسازی و اجرا کنید.
$ ./mvnw spring-boot:run
- دوباره برنامه را با استفاده از پیش نمایش وب بررسی کنید . این بار باید پیام «
Kotlin app on Cloud Run, containerized by Jib!
» را مشاهده کنید. برنامه را باControl+C
متوقف کنید.
5. برنامه خود را کانتینر کنید و در Container Registry منتشر کنید
با Jib ، می توانید برنامه خود را به روشی بهینه و بدون Docker محفظه کنید و در هر رجیستری کانتینری منتشر کنید.
- قبل از ادامه، باید Container Registry API را فعال کنید. این کار فقط باید یک بار در هر پروژه انجام شود تا API در دسترس باشد.
$ gcloud services enable containerregistry.googleapis.com
- Jib را اجرا کنید تا یک تصویر Docker بسازید و در Container Registry منتشر کنید.
$ ./mvnw com.google.cloud.tools:jib-maven-plugin:3.1.1:build \ -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/kotlin-jib-cloud-run
در نهایت، پیام زیر را مشاهده خواهید کرد که برنامه حاوی Containerized است و به Registry Container شما منتقل شده است.
[INFO] Built and pushed image as gcr.io/PROJECT_ID/kotlin-jib-cloud-run ... [INFO] BUILD SUCCESS
اگر خطایی مشاهده کردید، دوباره بررسی کنید که آیا $GOOGLE_CLOUD_PROJECT
به درستی روی شناسه پروژه Google Cloud شما ( PROJECT_ID
) تنظیم شده است.
- قبل از حرکت، بررسی کنید که آیا تصویر با موفقیت منتشر شده است یا خیر. به کنسول Cloud برگردید، روی منوی پیمایش کلیک کنید و Container Registry را انتخاب کنید.
خواهید دید که تصویر شما با موفقیت منتشر شده است.
6. برنامه کانتینری را در Cloud Run اجرا کنید
Cloud Run بدون سرور را به کانتینرها می آورد و به طور خودکار کانتینرهای بدون حالت شما را مقیاس می کند.
- روی منوی ناوبری کلیک کنید دوباره و Cloud Run را انتخاب کنید.
اگر این اولین باری است که به Cloud Run دسترسی پیدا میکنید، کادر گفتگوی زیر را برای راهاندازی یکباره مشاهده خواهید کرد. اگر ظاهر شد روی Start Using Cloud Run کلیک کنید.
- در صفحه Cloud Run، روی Create Service کلیک کنید.
- در صفحه بعد، روی انتخاب در زیر منبع کلیک کنید. منبع تصویری است که می خواهید در Cloud Run اجرا شود.
- دیالوگ تصویری را که قبلا ساخته اید نشان می دهد. تصویر را انتخاب کنید و روی Continue کلیک کنید.
- اکنون فقط چند کلیک با استقرار برنامه فاصله دارید. در زیر پلت فرم استقرار ، Cloud Run (کاملاً مدیریت شده) را انتخاب کنید تا سرویس به طور کامل در Google Cloud مدیریت شود. یک منطقه مناسب برای موقعیت مکانی خود انتخاب کنید، اجازه دادن به فراخوان های تایید نشده را انتخاب کنید و روی ایجاد کلیک کنید. همین!
هنگامی که تصویر به طور کامل مستقر شد، صفحه Cloud Run یک URL برای دسترسی به برنامه نمایش می دهد. آن را بررسی کنید!
در پایان، پیامی را که از برنامه انتظار دارید مشاهده خواهید کرد.
Kotlin app on Cloud Run, containerized by Jib!
همین! در آینده، اگر نیاز به استقرار نسخههای جدید برنامه دارید، میتوانید با کلیک روی Deploy New Revision در صفحه این کار را انجام دهید.
7. پاکسازی کنید
- برای پاکسازی محیط خود، باید برنامه مستقر شده را در Cloud Run و تصویر منتشر شده در Container Registry را حذف کنید. به Cloud Run بروید، برنامه را انتخاب کنید و روی Delete کلیک کنید.
- به همین ترتیب به صفحه Container Registry رفته و تصویر را حذف کنید.
8. تبریک می گویم
تبریک می گویم! شما با موفقیت برنامه Spring Boot Kotlin خود را کانتینری کردید و آن را در Cloud Run مستقر کردید!
با استفاده از Jib، یک تصویر کانتینر بهینهسازی شده بدون نصب یا نوشتن Dockerfile ساختید و آن را در Container Registry منتشر کردید. Jib ساخت تصویر را بهینه میکند، بنابراین هر کسی که دانش عمیق Docker را نداشته باشد، میتواند برنامههای جاوا را سریع و کارآمد کند. سپس، با چند کلیک، برنامه را در Cloud Run مستقر کردید تا در کمترین زمان سرویس را شروع کنید.
بیشتر بدانید
- یک برنامه جاوا را در Kubernetes در Google Kubernetes Engine اجرا کنید
- مستندات Cloud Run
- نمای کلی Cloud Run
- معرفی Jib—تصاویر جاوا داکر را بهتر بسازید
- با Jib، ابزار ساخت تصویر Google برای برنامههای جاوا، کانتینرها را سریعتر بسازید
- Jib—برنامه جاوا خود را کانتینر کنید
- کانال جیب گیتر
- لیست پستی کاربران Jib