October 20, 2021

Using Jib to build a Docker image

Trong bài này chúng ta sẽ sử dụng Jib plugin để build Docker image. Sau đó push image lên Google Container Registry. Cuối cùng là deploy image lên Google Cloud Run. Project chúng ta dùng cho demo này là Spring Boot.

Nếu bạn chưa biết Jib là gì? Thì Jib là library mà giúp chúng ta build containers mà không cần Docker. Jib support cả Maven và Gradle.

Trước tiên, chúng ta cần auth với gcloud, nếu bạn đã làm thì có thể bỏ qua bước này:

Auth gcloud

1. Set account:

gcloud config set account YOUR_EMAIL_ACCOUNT@gmail.com

2. Login và cấp quyền:

gcloud auth login

3. Set project

gcloud config set project YOUR_PROJECT_ID

Build Image with Jib

1. Bạn có thể không cần add Jib plug-in vào file pom.xml. Sử dụng command như dưới đây cũng có thể build image:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.4.0:build -Dimage=gcr.io/mydemo-8899/spring-boot-jib

Trong đó:
+ mydemo-8899 là project ID
+ spring-boot-jib là docker image name

2. Hoặc bạn add Jib plugin vào pom.xml.

<plugin>
	<groupId>com.google.cloud.tools</groupId>
	<artifactId>jib-maven-plugin</artifactId>
	<version>2.4.0</version>
	<configuration>
		<to>
			<image>gcr.io/mydemo-8899/spring-boot-jib</image>
		</to>
	</configuration>
</plugin>
mvn compile jib:build

3. Nếu bạn muốn build và push image đến minikube hoặc Docker Desktop thì có thể sử dụng command:

mvn compile jib:dockerBuild

4. Thử deploy image mà chúng ta vừa build lên Cloud Run.

gcloud run deploy demo-springboot-jib --image gcr.io/mydemo-8899/spring-boot-jib --platform managed --region asia-east1 --allow-unauthenticated
  • demo-springboot-jib: Đây là service name của Cloud Run. Có thể thay đổi tuỳ ý.
  • asia-east1: Đây là region. Có thể thay đổi region sao cho phù hợp với vị trí bạn muốn.
  • --allow-unauthenticated: Nếu sử dụng param này, website của bạn sẽ public. Trường hợp không muốn public, muốn Auth thì không dùng param này.

Bạn có thể vào Cloud Run Console để xem service chúng ta vừa deploy.Sau khi test xong, nếu không sử dụng nữa bạn nên delete service để không bị tính phí.
Ngoài ra bạn có thể vào đây để có thêm nhiều thông tin, Jib support bạn rất nhiều config.

Leave a Reply

Your email address will not be published. Required fields are marked *