Những ưu và nhược điểm của việc chạy thử nghiệm ứng dụng trong thời gian so với sau khi xây dựng docker là gì?


7

Dockerfile của chúng tôi tạo ra môi trường ứng dụng (ví dụ: biến env, cài đặt thư viện với apt-get, v.v.). Nó cũng kéo và sao chép mã ứng dụng python từ repo git của nó.

Tuy nhiên, chúng tôi đang tranh luận liệu các thử nghiệm ứng dụng (một số đơn vị, một số tích hợp) nên được đặt trong một RUNlệnh docker (ví dụ RUN /bin/bash -c "source activate cool_env; pytest") hoặc sau khi xây dựng bằng cách sử dụng ngăn xếp CI (ví dụ Jenkins, Openshift) để thực hiện các thử nghiệm trên thùng chứa được xây dựng.

Những ưu và nhược điểm của mỗi là gì?


Ngoài ra còn có một tính năng mới, các bản dựng nhiều giai đoạn cho phép bạn có cả bản dựng và kiểm tra trong cùng một Dockerfile.
Peter Muryshkin

Câu trả lời:


3

Tôi hỗ trợ đề xuất của J.Doe cho các tệp Docker riêng cho từng giai đoạn xây dựng và thử nghiệm. Cách tiếp cận như vậy cũng cho phép bạn:

  • chạy lại giai đoạn thử nghiệm vì bất kỳ lý do gì (ví dụ như các lỗi không liên tục đã biết) mà không thực hiện lại giai đoạn xây dựng
  • chạy song song nhiều giai đoạn thử nghiệm khác nhau bằng cách sử dụng cùng một bản dựng - ví dụ thay vì chạy một giai đoạn thử nghiệm dài duy nhất được tạo thành từ các thử nghiệm nối tiếp, để tăng tốc độ đường ống tổng thể đáng kể.

2

Nếu bạn chạy mọi thứ trong cùng một container ...

PRO: bạn cũng đã giải quyết thách thức CasC để định cấu hình nội tuyến thử nghiệm

CON: bạn bỏ lỡ phần tesing hộp đen, hãy tưởng tượng container của bạn sẽ không chấp nhận kết nối từ bên ngoài. Ôi!

Do đó, giải pháp có thể: Tôi sẽ sử dụng một đường ống khai báo dựa trên Docker nhiều giai đoạn: một môi trường Docker cho mỗi giai đoạn nơi tạo tác xếp tầng dọc theo nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.