2016-02-01 23 views
9

Tôi có một vài lệnh RUN trong Dockerfile mà tôi muốn chạy với -no-cache mỗi lần tôi tạo hình ảnh Docker.Tắt bộ nhớ cache cho các lệnh RUN cụ thể

Tôi hiểu rằng docker build -no-cache sẽ tắt bộ nhớ đệm cho toàn bộ Dockerfile.

Có thể tắt bộ nhớ cache cho lệnh RUN cụ thể không?

+0

Khi bạn vô hiệu hóa bộ nhớ cache cho một lệnh duy nhất, nếu kết quả không phù hợp qua chạy cache, bạn cần phải xây dựng lại tất cả các bước còn lại. Đó có phải là mục tiêu của bạn không, hoặc bạn có hy vọng chỉ xây dựng lại một lớp duy nhất và bằng cách nào đó tiêm vào nơi lưu trữ dữ liệu được lưu trước đó không? – BMitch

+0

Tôi đã hy vọng xây dựng lại các lớp cụ thể, ví dụ như lệnh "git pull". Ngay bây giờ lệnh "git pull" sẽ được lưu vào bộ nhớ cache, mặc dù repo được cập nhật. – Vingtoft

+1

Thật dễ dàng để ép buộc bằng cách truyền một đối số không được sử dụng. Nhưng kết quả của mục được lưu trữ được xây dựng lại đó là tất cả các lớp sau sẽ cần xây dựng lại. Xem [câu trả lời của tôi ở đây] (http://stackoverflow.com/a/37798643/596285) để biết ví dụ. – BMitch

Trả lời

2

Không trực tiếp nhưng bạn có thể chia Dockerfile của bạn trong một số bộ phận, xây dựng một hình ảnh, sau đó TỪ thisimage vào đầu của Dockerfile tới, và xây dựng hình ảnh có hoặc không có bộ nhớ đệm

+0

Điều này có cho phép cập nhật các lớp cam kết trong hình ảnh đế đế không? –

3

Tính đến tháng 2 2016 nó không phải là khả thi.

Các tính năng đã được yêu cầu tại GitHub

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