Tạo Dockerfile và generate docker image

Tạo task

  1. Trước tiên bạn cần phải tạo task trên file build.grade bằng cách copy đoạn code sau
tasks.register("unpack", Copy) {
	dependsOn bootJar
	from(zipTree(tasks.bootJar.outputs.files.singleFile))
	into("build/libs")
}

Đoạn mã này là một đoạn mã sử dụng Gradle để định nghĩa một task mới có tên là “unpack”. Hành động của task này là sao chép (copy) các file từ một tệp nén (ZIP) của task “bootJar” và giải nén chúng vào thư mục “build/libs”.

Architect

Tạo file .dockerignore

  1. Tạo file .dockerignore để chỉ định những file và thư mục mà Docker sẽ bỏ qua (ignore) khi bạn đóng gói (build) một image Docker từ các thành phần của project.

Architect

  1. Copy đoạn code bên dưới
.git
.gitignore
.dockerignore
.gradle
.idea

Dockerfile
README.md

Architect

Tạo file Dockerfile

  1. Tạo file Dockerfile và copy đoạn code bên dưới
FROM eclipse-temurin:21-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=build/libs
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
EXPOSE 8081
ENTRYPOINT ["java", "-cp", "app:app/lib/*", "com.firstcloudjourney.productsservice.ProductsserviceApplication"]

Architect

Generate docker image

  1. Tiếp theo chúng ta sẽ cấu hình trên intelliJ để generate Docker image
    • Nhấn vào biểu tượng Run, chọn new run configuration

Architect

  1. Một popup hiện lên chúng ta sẽ cấu hình như sau
  • Với Image Tag, nhập productsservice:1.0.0
  • Nhấn Modify Opition chọn Build options
  • Khi Build options hiên ra, nhập --platform linux/amd64

Architect

  1. Tiếp theo chúng ta cần cấu hình before launch
  • Nhấn vào icon + và chọn run gradle task
  • Sau đó 1 pop up hiên lên như bên dưới

Architect

  1. Trong pop up select gradle task
    • Với Gradle project chọn productsservice
    • Với Task chọn unpack task chúng ta đã thêm trước đó
    • Chọn Ok

Architect

  1. Sau khi trở lại pop up edit configuration nhấn apply

Architect

build ứng dụng sử dụng bootjar

  1. Tiếp theo chúng ta sẽ build ứng dụng bằng cách sử dụng bootjar từ gradle
  • Chọn biểu tượng gradle
  • Chọn task theo sau đó là build và nhấn bootjar để build ứng dụng

Architect

  1. Kiểm tra file ứng dụng chúng ta đã buid theo đường dẫn build/libs

Architect

Gennerate docker image

  1. Bây giờ chúng ta sẽ tạo Docker image từ ứng dụng chúng ta đã build
  • Nhấn vào biểu tượng Run ở DockerFile và chọn Build image for ‘DockerFile’

Hãy đảm bảo bạn đã mở docker desktop để có thể build image thành công

Architect

  1. Sau khi tạo image thành công chúng ta có thể thấy productsservice:1.0.0 đã được tạo ra

Architect