Trang chủ /
Tích hợp Makefile, Bash Script và Docker Compose để Quản lý Dự án Hiệu Quả /
2 lượt xem
Khi làm việc với các dự án phần mềm, việc tự động hóa quy trình phát triển là rất quan trọng để tiết kiệm thời gian và giảm thiểu lỗi. Makefile, Bash Script, và Docker Compose là ba công cụ mạnh mẽ giúp bạn đạt được điều này.
Trong bài viết này, chúng ta sẽ kết hợp cả ba công cụ để tạo một quy trình tự động hóa hoàn chỉnh.
project/ ├── docker-compose.yml ├── Makefile ├── scripts/ │ └── build.sh └── src/ └── app.py
docker-compose.yml
Dùng để định nghĩa các dịch vụ Docker trong dự án:
version: '3.8' services: app: build: context: . ports: - "8000:8000" volumes: - ./src:/app command: python /app/app.py
scripts/build.sh
)Chứa logic triển khai phức tạp hoặc các bước kiểm tra trước khi chạy.
#!/bin/bash echo "Bắt đầu kiểm tra môi trường..." # Kiểm tra Docker if ! [ -x "$(command -v docker)" ]; then echo "Docker chưa được cài đặt. Vui lòng cài đặt Docker trước." >&2 exit 1 fi # Kiểm tra Docker Compose if ! [ -x "$(command -v docker-compose)" ]; then echo "Docker Compose chưa được cài đặt. Vui lòng cài đặt Docker Compose." >&2 exit 1 fi echo "Tất cả kiểm tra đã hoàn tất. Bắt đầu build dự án..." # Chạy Docker Compose docker-compose up --build
chmod +x scripts/build.sh
Tích hợp Bash Script và Docker Compose vào Makefile để dễ dàng sử dụng:
.PHONY: up down build logs # Khởi động Docker Compose up: @docker-compose up # Tắt Docker Compose down: @docker-compose down # Build Docker Compose và chạy kiểm tra bằng Bash Script build: @bash scripts/build.sh # Xem logs logs: @docker-compose logs -f
make build
make up
make down
make logs
Thêm vào file Makefile
:
.PHONY: test # Chạy kiểm tra mã nguồn test: @docker-compose run --rm app pytest /app/tests
Sử dụng Bash Script và Makefile trong pipeline của CI/CD như GitHub Actions hoặc GitLab CI để tự động hóa toàn bộ quy trình.
Kết hợp Makefile, Bash Script, và Docker Compose là một cách hiệu quả để tối ưu hóa quy trình làm việc. Hệ thống này không chỉ giúp bạn tiết kiệm thời gian mà còn tăng cường tính tổ chức và giảm thiểu rủi ro lỗi.
Hãy áp dụng ngay vào dự án của bạn để trải nghiệm những lợi ích mà nó mang lại!