+3

Xây dựng Multi Container Spring Boot Apps với Docker Compose

Khi các bạn đọc bài viết Deploy Spring Boot Application Development Docker Window 10 chắc nhiều bạn sẽ đặt câu hỏi: Nếu muốn kết nối với database thì sẽ như thế nào? Nhiều kết nối nữa thì giải quyết ra sao?... Bài viết này, mình sẽ hướng dẫn giải quyết các thắc mắc đó nhé.

1. Chuẩn bị project

Download source code Hiển thị các thư mục project, dùng câu lệnh command "tree" image.png

Xem qua thư mục .docker -> docker-compose.yaml

services:
  backend:
    build:
      context: backend
      target: dev-envs
    ports:
      - 8080:8080
    environment:
      - POSTGRES_DB=example
    networks:
      - spring-postgres
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  db:
    image: postgres
    restart: always
    secrets:
      - db-password
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - spring-postgres
    environment:
      - POSTGRES_DB=example
      - POSTGRES_PASSWORD_FILE=/run/secrets/db-password
    expose:
      - 5432
volumes:
  db-data:
secrets:
  db-password:
    file: db/password.txt
networks:
  spring-postgres:

Trong compose file có 2 service: db và backend. Sử dụng port 8080, tránh sử dụng port với các ứng dụng khác, miễn làm sao chưa ứng dụng nào dùng port 8080. Ngoài ra, định nghĩa các biến môi trường, connect backend service với postgres database, đặt username và password database

2. Chạy docker compose

Chạy câu lệnh docker compost command: docker compose up -d

image.png

Tiếp theo, vào docker desktop -> Images, hiển thị tên Spring-postgres-backend và postgress image.png

Aplication run start, kiểm tra http://localhost:8080/ hiển thị thông tin "Hello from Docker!" image.png

Như vây, chúng ta đã xây dựng được nhiều ứng dụng chạy trên Docker Compose (backend service, postgres database ) trên 1 cổng.

3. Dừng và xóa Containers

Khi có quá nhiều Containers chạy cùng 1 lúc, sẽ ảnh hưởng đến CPU, Memory, Disk, Network I/O. Do đó chúng ta nên quản lý Containers phù hợp nhất, lựa chọn các Containers hoạt động để tiết kiệm nguồn tài nguyên. Câu lệnh docker compose down image.png

Ngoài ra, chúng ta có thể action trên giao diện Docker Desktop, lựa chọn Containers -> Action phù hợp nhất thôi image.png

4. Tổng kết

Bài viết này, có thể giúp các bạn xây dựng hệ thống có nhiều Container như backend service, database lên Docker Compose. Còn khó khăn gì nữa, bắt tay làm việc thôi nhỉ. Các thím có thắc mắc hãy comment bình luận bên dưới nhá.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí