Tôi sử dụng đế chế trong cả phát triển và sản xuất và một điều thực sự gây lỗi cho tôi là tính đơn giản của bộ đệm docker. Tôi có ứng dụng ruby yêu cầu bundle install
để cài đặt các phụ thuộc vì vậy tôi bắt đầu với Dockerfile sau đây: ADD Gemfile Gemfile ADD Gemfile.lock Gemfile.lock RUN bundle install --path /root/bundle
Tất cả các phụ thuộc đều được lưu trong bộ nhớ cache và nó hoạt động tốt cho đến khi tôi thêm đá quý mới. Ngay cả khi đá quý tôi đã thêm chỉ là 0,5 MB nó vẫn mất 10-15 phút để cài đặt tất cả các đá quý ứng dụng từ đầu. Và sau đó thêm 10 phút để triển khai nó do kích thước của thư mục phụ thuộc (khoảng 300MB).Vấn đề bộ đệm cài đặt bộ đệm khi cập nhật đá quý
Tôi đã gặp chính xác cùng một vấn đề với node_modules và npm. Tôi đã tự hỏi, có ai tìm ra giải pháp cho vấn đề này không?
kết quả nghiên cứu của tôi cho đến nay:
Source to image - lưu trữ tập tin tùy ý trên gia tăng xây dựng. Thật không may, do cách nó hoạt động nó đòi hỏi phải đẩy toàn bộ 300MB để đăng ký ngay cả khi đá quý không thay đổi. Xây dựng nhanh hơn -> triển khai chậm hơn ngay cả khi đá quý không được cập nhật.
Gemfile.tip - chia Gemfile thành hai tệp khác nhau và chỉ thêm đá quý vào một trong số chúng. Giải pháp rất cụ thể cho bundler và tôi không tin rằng nó sẽ mở rộng thêm 1-2 đá quý.
Harpoon - sẽ phù hợp nếu không thực tế là chúng buộc phải bỏ neo Dockerfile và chuyển sang định dạng riêng của chúng. Có nghĩa là thêm đau cho tất cả các nhà phát triển mới trong một nhóm như bộ công cụ này đòi hỏi thời gian để tìm hiểu một cách riêng biệt từ docker.
Bộ nhớ tạm thời gói. Đó chỉ là một ý tưởng mà tôi không chắc là có thể. Bằng cách nào đó mang bộ nhớ cache của trình quản lý gói (không phải thư mục phụ thuộc) vào máy trước khi cài đặt các gói và sau đó gỡ bỏ nó. Dựa trên hack của tôi nó tăng tốc đáng kể cài đặt gói cho cả bundler và npm mà không làm đầy máy với các tập tin bộ nhớ cache không cần thiết.
Bạn có thể sao chép thư mục đá quý ra khỏi hình ảnh được tạo thành tệp tar. Sau đó, bạn có thể thêm một lớp ngay trước ADD Gemfile Gemfile của bạn để khôi phục thư mục gem đó trở lại hình ảnh. Tại thời điểm đó, chỉ cần thay đổi lại các thay đổi. Tôi đang thử nghiệm kỹ thuật đó ngay bây giờ. Nếu tôi làm cho nó hoạt động, tôi sẽ đăng câu trả lời. –
@ScottJacobsen bất kỳ may mắn cho đến nay? – jQwierdy
@jQwierdy - đăng giải pháp của tôi. –