2017-05-17 17 views
10

Tôi có một Dockerfile mở rộng FROM một hình ảnh tuyên bố một VOLUME. Có cách nào để ghi đè chỉ thị VOLUME theo cách sao cho "xóa" VOLUME không?"Xóa" một VOLUME trong một Dockerfile

+0

Xem [* Đặt lại các thuộc tính được kế thừa từ hình ảnh mẹ *] (https://github.com/moby/moby/issues/3465) (vấn đề mở tại thời điểm viết). – saaj

+0

Có cùng một vấn đề, và phải bỏ ra hàng giờ cố gắng tìm ra lý do tại sao một subdir cụ thể không tiếp tục viết cho nó. Cuối cùng thấy rằng một số cấp độ lên, một người nào đó đã được "thông minh" để chỉ định một VOLUME cho rằng dir cụ thể:/ – BjornW

Trả lời

13

số

Cách duy nhất để làm như vậy, là nếu bạn sao chép Dockerfile của hình ảnh bạn sử dụng như cơ sở một (một trong FROM) và loại bỏ các chỉ thị VOLUME bằng tay. Sau đó, xây dựng nó và sử dụng trong FROM của bạn làm cơ sở.

+0

Có một lý do cho giới hạn này? Tôi nghĩ rằng nó có thể là an ninh liên quan, nhưng tôi không thể nghĩ ra cách nào để lạm dụng một loại bỏ khối lượng trong một Dockerfile con. – Mitja

+0

@Mitja Không, chỉ là các chỉ thị Dockerfile được viết theo cách như vậy, bạn không thể ghi đè lên một tập mà cha mẹ khai báo. Nó được viết đặc biệt [ở đây] (https://docs.docker.com/engine/reference/builder/#notes-about-specifying-volumes): 'Nếu bất kỳ bước xây dựng nào thay đổi dữ liệu trong khối lượng sau khi nó đã được khai báo , những thay đổi đó sẽ bị hủy.' –

+2

Cảm ơn! Nghe có vẻ như tôi nên có một cảnh báo về thời gian xây dựng mà điều này vừa xảy ra. – Mitja

Các vấn đề liên quan