Tôi hơi bối rối về hai lựa chọn này. Chúng dường như có liên quan. Tuy nhiên, chúng không thực sự tương thích.
Ví dụ: có vẻ như việc sử dụng Dockerfiles có nghĩa là bạn không thực sự cam kết với hình ảnh, bởi vì bạn thực sự chỉ nên theo dõi Dockerfile trong git và thực hiện các thay đổi đối với điều đó. Sau đó, không có sự mơ hồ về những gì là có thẩm quyền.
Tuy nhiên, hình ảnh cam kết có vẻ thực sự tốt đẹp. Thật tuyệt vời khi bạn có thể sửa đổi trực tiếp vùng chứa và gắn thẻ các thay đổi để tạo một hình ảnh khác. Tôi hiểu rằng bạn thậm chí có thể nhận được một cái gì đó như hệ thống tệp khác với lịch sử cam kết hình ảnh. Tuyệt vời. Nhưng sau đó bạn không nên sử dụng Dockerfiles. Mặt khác, nếu bạn đã thực hiện cam kết hình ảnh, bạn phải quay lại Dockerfile của mình và thực hiện một số thay đổi thể hiện những gì bạn đã làm.
Vì vậy, tôi bị rách. Tôi thích ý tưởng về cam kết hình ảnh: rằng bạn không cần phải đại diện trạng thái hình ảnh của mình trong Dockerfile - bạn có thể theo dõi trực tiếp. Nhưng tôi không thoải mái về việc từ bỏ ý tưởng về một số loại tệp kê khai cung cấp cho bạn cái nhìn tổng quan nhanh về những gì trong một hình ảnh. Thật khó chịu khi thấy hai tính năng trong cùng một gói phần mềm dường như không tương thích.
Có ai có bất cứ suy nghĩ về điều này? Sử dụng cam kết hình ảnh có bị coi là hành vi xấu không? Hay tôi chỉ nên loại bỏ tệp đính kèm của mình với các tệp kê khai từ những ngày Con rối của tôi? Tôi nên làm gì?
Cập nhật :
Đối với tất cả những người nghĩ rằng đây là một câu hỏi dựa trên ý kiến, tôi không chắc lắm. Nó có một số phẩm chất chủ quan, nhưng tôi nghĩ đó chủ yếu là một câu hỏi khách quan. Hơn nữa, tôi tin rằng một cuộc thảo luận tốt về chủ đề này sẽ có nhiều thông tin.
Cuối cùng, tôi hy vọng rằng bất cứ ai đọc bài đăng này sẽ hiểu rõ hơn về cách Dockerfiles và các cam kết hình ảnh có liên quan với nhau.
Cập nhật - 2017/7/18 :
Tôi vừa mới phát hiện ra một cách sử dụng hợp pháp cho cam kết hình ảnh. Chúng tôi vừa thiết lập đường ống CI tại công ty của mình và trong một giai đoạn của quá trình này, các thử nghiệm ứng dụng của chúng tôi được chạy bên trong một vùng chứa. Chúng tôi cần truy xuất các kết quả về phạm vi từ vùng chứa đã thoát sau khi quá trình chạy thử nghiệm đã tạo chúng (trong hệ thống tệp của vùng chứa) và vùng chứa đã ngừng chạy. Chúng tôi sử dụng các cam kết hình ảnh để thực hiện việc này bằng cách cam kết vùng chứa đã dừng để tạo một hình ảnh mới và sau đó chạy các lệnh hiển thị và kết xuất tệp bao phủ sang stdout. Vì vậy, thật tiện lợi khi có cái này. Ngoài trường hợp rất cụ thể này, chúng tôi sử dụng Dockerfiles để xác định môi trường của chúng tôi.