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"
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
Tiếp theo, vào docker desktop -> Images, hiển thị tên Spring-postgres-backend và postgress
Aplication run start, kiểm tra http://localhost:8080/ hiển thị thông tin "Hello from Docker!"
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
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
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