0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng dẫn sử dụng Docker Compose Watch để thiết lập môi trường phát triển hiệu quả

Đăng vào 3 tuần trước

• 3 phút đọc

Chủ đề:

KungFuTechDocker

Docker Compose Watch là gì?

Docker Compose Watch là một tính năng hữu ích trong Docker Compose cho phép bạn tự động đồng bộ hóa mã nguồn cục bộ với mã trong các container Docker mà không cần phải sử dụng volumes. Thay vì sử dụng lệnh docker-compose up, bạn có thể dùng lệnh docker-compose watch để theo dõi các thay đổi trong mã nguồn và thực hiện các hành động tương ứng.

Cách thực hiện

Trong bài viết này, chúng ta sẽ thử nghiệm tính năng Docker Compose Watch với một dự án mẫu mà bạn có thể clone từ GitHub. Thực hiện các bước sau để bắt đầu:

  1. Clone dự án mẫu:

    Copy
    git clone https://github.com/dockersamples/avatars.git
    cd avatars
  2. Đây là cấu trúc của file compose.yaml:

    yaml Copy
    services:
      api:
        image: avatars-api
        build:
          context: .
          dockerfile: ./deploy/api.dockerfile
        ports:
          - 5734:80
        develop:
          watch:
            - path: api/requirements.txt
              action: rebuild
            - path: api/
              target: /app/api/
              action: sync
    
      web:
        image: avatars-web
        build:
          context: .
          dockerfile: ./deploy/web.dockerfile
        ports:
          - 5735:5173
        develop:
          watch:
            - path: web/package.json
              action: rebuild
            - path: web/yarn.lock
              action: rebuild
            - path: web/
              target: /app
              action: sync

Giải thích các thuộc tính

Trong file compose.yaml, thuộc tính watch chứa danh sách các quy tắc, với mỗi quy tắc bao gồm một đường dẫn mà nó theo dõi và một hành động (action) sẽ được thực hiện khi có thay đổi trong đường dẫn đó. Có hai loại hành động:

  • sync: Sao chép các tệp đã thay đổi vào các dịch vụ container đang chạy.
  • rebuild: Kích hoạt việc xây dựng image và tái tạo các container đang chạy.

Chẳng hạn, khi có thay đổi trong thư mục web/, Docker Compose sẽ tự động sao chép tệp đó vào vị trí tương ứng trong /app bên trong container. Nhờ vào việc Webpack hỗ trợ Hot Module Reload, các thay đổi này sẽ được tự động phát hiện và áp dụng.

Đối với các thay đổi yêu cầu cài đặt thư viện mới, khi package.json thay đổi, Docker Compose sẽ xây dựng lại image và tái tạo container web.

Khởi động môi trường phát triển

Để khởi động môi trường phát triển, bạn chỉ cần chạy hai lệnh sau:

bash Copy
docker compose up -d
docker compose watch

Sau khi chạy lệnh, bạn có thể mở trình duyệt và truy cập đường dẫn http://localhost:5735. Bạn sẽ thấy rằng mọi thay đổi trong mã nguồn đều được áp dụng một cách tự động vào các container.

Kết luận

Việc sử dụng Docker Compose Watch giúp bạn thiết lập một môi trường phát triển một cách nhanh chóng và hiệu quả hơn bao giờ hết. Nếu bạn gặp bất kỳ khó khăn nào trong quá trình thiết lập, đừng ngần ngại để lại câu hỏi cho tôi ở phần bình luận bên dưới.

Nguồn tham khảo: Docker Documentation
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào