Deploy ứng dụng Spring Boot lên Docker

Trong bài viết này, mình sẽ hướng dẫn các bạn cách deploy một ứng dụng Spring Boot lên Docker các bạn nhé!

Các bước chúng ta cần phải làm là:

  • Tạo một Spring Boot project đơn giản.
  • Viết Dockerfile
  • Deploy ứng dụng lên Docker Container.

OK, bắt đầu nào các bạn.

Tạo Spring Boot project

Mình sẽ sử dụng Spring Boot Initializr Web để tạo một Spring Boot project:

Deploy ứng dụng Spring Boot lên Docker

rồi mở nó lên sử dụng IntelliJ IDE:

Deploy ứng dụng Spring Boot lên Docker

Để đơn giản, mình sẽ mở tập tin SpringBootDockerApplication:

và modify nó một chút để thêm một RESTful Web Service return về chuỗi “Hello Docker!” như sau:

Kết quả:

Deploy ứng dụng Spring Boot lên Docker

Bây giờ, mình sẽ viết một Dockerfile để deploy ứng dụng của chúng ta lên Docker Container.


Viết Dockerfile

Mình sẽ tạo mới một tập tin Dockerfile nằm trong thư mục của project:

Deploy ứng dụng Spring Boot lên Docker

Bây giờ, chúng ta sẽ sửa Dockerfile này để xây dựng một Docker Image nhé các bạn.

  • Đầu tiên là mình sẽ sử dụng một Image trên Docker Hub để build Image cho chúng ta.

Image đó có tên là 8u141-jre nằm trong repository openjdk. Do đó, câu lệnh FROM của mình sẽ có nội dung như sau:

  • Tiếp theo mình sẽ link thư mục /tmp của Docker Container vào thư mục của Docker (/Applications/Docker.app/Contents/MacOS).

Ở đây, chúng ta sẽ sử dụng câu lệnh VOLUME nhé các bạn:

  • Giờ mình sẽ copy tập tin spring-boot-docker-0.0.1-SNAPSHOT.jar nằm trong thư mục target của project vào Docker Container.

  • Và cuối cùng thực thi câu lệnh để chạy ứng dụng Spring Boot của chúng ta mỗi khi Docker Container của chúng ta được chạy.

Nội dung toàn bộ của Dockerfile như sau:



Deploy ứng dụng lên Docker Container

Để deploy ứng dụng Spring Boot lên Docker Container từ Dockerfile, trước tiên chúng ta phải tạo Docker Image từ Dockerfile.

Các bạn hãy mở Terminal lên và đi đến thư mục của project, sau đó hãy nhập dòng lệnh sau:

Câu lệnh trên có 2 phần:

  • Phần đầu tiên là chúng ta sẽ dùng Maven để build ứng dụng Spring Boot.
  • Phần tiếp theo là dùng Docker để build Docker Image từ Dockerfile.

Sau khi chạy câu lệnh trên, kiểm tra tất cả Docker Image, các bạn sẽ thấy các Docker Image như sau:

Deploy ứng dụng Spring Boot lên Docker

trong đó có Docker Image mà chúng ta vừa tạo.

Và bây giờ chúng ta có thể chạy Docker Container từ Docker Image mà chúng ta vừa tạo rồi.

Ở đây, mình đã mapping port của máy mình với port của Docker Container là 8080 luôn, nên để kiểm tra kết quả, các bạn cũng truy cập vào http://localhost:8080/hello các bạn nhé!

Deploy ứng dụng Spring Boot lên Docker

Chia sẽ bài viết này ...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

14 thoughts on “Deploy ứng dụng Spring Boot lên Docker

  1. Pingback: Request Mapping – newsflaz.com

  2. Avatar

    Cho em hỏi lúc ở hình thứ 2 không có thư mục target. Mà sao hình lúc viết Dokerfile lại có thư mục target vậy? Em không thấy file spring-boot-docker-0.0.1-SNAPSHOT.jar .
    À với em đang dùng gradle chứ không phải maven. Thế thì câu lệnh ở dưới sẽ thay đổi như thế nào ạ?
    mvn clean package && docker build -t spring-boot-docker .
    Thanks

      1. Avatar

        Đây là nội dung trên Dockerfile:
        FROM openjdk:8u141-jre
        VOLUME /tmp
        ADD target/spring-boot-docker-0.0.1-SNAPSHOT.jar app.jar
        ENTRYPOINT exec java -jar app.jar
        Làm giống hệt của bạn.

Add Comment