6

EB đã phàn nàn rằng bản dựng của tôi đã hết thời gian, vì vậy tôi đã chuyển sang một ví dụ và quyết định tự mình chạy docker build để xem điều gì đang xảy ra. Mỗi bước, thậm chí một cái gì đó đơn giản như một mkdir mất độ tuổi để chạy. Ngay cả một quầy hàng WORKDIR trong ít nhất một hoặc hai phút trước khi thực hiện.Tại sao các lệnh xây dựng Docker chạy quá chậm trong Cây đậu Đàn hồi?

Trên máy cục bộ của tôi, chúng là ngay lập tức. Chuyện gì vậy?

Trả lời

0

Rất tiếc khi biết bạn đang gặp phải sự cố này. Tạo môi trường cây đậu đàn hồi liên quan đến việc tạo ra rất nhiều tài nguyên như nhóm tự động tính toán, trường hợp EC2, nhóm bảo mật, Bộ cân bằng tải đàn hồi… Sau khi phần mềm đó được cài đặt trên các phiên bản beanstalk của bạn. Tôi giả sử bạn chỉ nói về sự chậm chạp của việc cài đặt phần mềm (docker build) trên cây đậu.

Nếu bạn chỉ chạy mkdir không nên quá chậm. Nó phải hợp lý nhanh.

Tuy nhiên, nếu bạn cho rằng việc xây dựng trình docker tổng thể đang chạy rất chậm có thể do các hoạt động chuyên sâu của IO.

Một điều bạn có thể thử đang sử dụng EBS provisioned IOPs with Elastic Beanstalk. Đọc thêm về các phiên bản SSD here.

Bạn có thể thử khởi chạy một môi trường mới với các phiên bản SSD và xem liệu trình tạo docker có còn chậm không? Nếu bạn có thể hiển thị một mẫu dockerfile mất nhiều thời gian để xây dựng, tôi có thể dùng thử.

+0

Dù bằng cách nào thì đơn giản 'RUN mkdir ~/asd' mất một thời gian rất dài. Điều này không liên quan gì đến những thứ liên quan đến khởi động của EBS. Tôi nghi ngờ rằng FS thực sự là yếu tố ngăn chặn, vì tôi có thể chạy 'apt-get' và nó có thể lấy mọi thứ rất nhanh chóng. –

+0

Ngoài ra hình ảnh docker cơ sở dockerfile của bạn có chứa cần phải được tải xuống (có thể dễ dàng được một số 100MBs). Điều này cần phải được tải xuống trên mỗi phiên bản EC2 lần đầu tiên. Bạn có nghĩ rằng đó là nguyên nhân gây ra sự chậm chạp ban đầu? Bạn có thể chạy 'hình ảnh docker' để xem hình ảnh nào đang được tải xuống. –

+0

Đây là các lệnh RUN. Những điều này xảy ra WAY sau khi hình ảnh ban đầu được tải xuống. –

8

Vấn đề tương tự ở đây với máy Ubuntu chạy trên AWS. Hóa ra chìa khóa để giải pháp chuyển từ devicemapper sang backend lưu trữ aufs.

Đầu tiên, hãy chạy lệnh sau đây để tìm ra những lưu trữ backend hiện bạn sử dụng:

docker info | grep Storage

Nếu nó nói devicemapper, bạn có thể tìm thấy lý do cho sự chậm chạp.

Đây là prodecure cho chuyển sang aufs backend trong Ubuntu, lấy từ here:

  1. sudo apt-get install -y -q linux-image-extra-$(uname -r)
  2. sudo service docker restart

Lưu ý rằng bạn sẽ phải xây dựng lại tất cả hình ảnh hiện tại của bạn/các thùng chứa, vì chúng sẽ bị xóa khi bạn chuyển sang auf.

+2

tuyệt vời. bây giờ nó nhanh gấp hàng nghìn lần, bạn đã cứu ngày của tôi. –

+0

Lưu ý: AMI dựa trên Linux của Amazon sử dụng lệnh yum thay vì apt-get. http://stackoverflow.com/questions/14045262/how-to-fix-apt-get-command-not-found-on-aws-ec2 –

+0

Tên gói cho AWS linux là gì? – noli

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