Docker Compose: dựng Postgres + Spring Boot cho môi trường local
22/07/2026
Khi phát triển local, cài PostgreSQL trực tiếp lên máy vừa bừa vừa khó đồng bộ giữa thành viên nhóm. Docker Compose gói toàn bộ hạ tầng vào một file, ai clone về cũng chạy được giống nhau.
File compose cơ bản
services:
db:
image: postgres:16
environment:
POSTGRES_DB: app
POSTGRES_PASSWORD: secret
ports: ["5432:5432"]
volumes: ["pgdata:/var/lib/postgresql/data"]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
retries: 5
app:
build: .
depends_on:
db:
condition: service_healthy
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/app
ports: ["8080:8080"]
volumes:
pgdata:
Những điểm quan trọng
- Volume:
pgdatagiữ dữ liệu database qua các lần khởi động lại — không mất khidocker compose down - Healthcheck + depends_on condition: app chỉ khởi động sau khi database thật sự sẵn sàng, không chỉ khi container tồn tại
- Tên service làm hostname: app kết nối tới
db:5432, không phải localhost, vì chúng ở cùng mạng Docker
Lệnh hay dùng
docker compose up -d # chạy nền
docker compose logs -f app
docker compose down # dừng, giữ volume
docker compose down -v # dừng, XOÁ luôn volume
👉 Dùng thử công cụ liên quan trên dev-hub: YAML Formatter — chạy hoàn toàn trong trình duyệt, không gửi dữ liệu lên server.