Chỉ mới bắt đầu chơi với Docker. Để triển khai một cuộc chiến tranh trên tomcat hình như vẫn có hai phương pháp:Docker: Cách tiếp cận nào tốt hơn? WAR được nhúng vào hình ảnh hoặc hình ảnh cơ bản + chiến tranh?
- Tạo hình ảnh với java + tomcat + chiến tranh nhúng trong hình ảnh
- Có một hình ảnh cơ bản với java + tomcat và sau đó "bơm" chiến tranh vào hình ảnh cơ sở (thông qua khối lượng máy chủ gắn kết, ví dụ)
Tiếp cận 1:
- Cần để tạo ra một hình ảnh cho mỗi xây dựng
- hoàn toàn gói giải pháp
- Do kích thước hình ảnh lớn, duy trì một hình ảnh cho từng xây dựng và chia sẻ hình ảnh cho việc triển khai hạ lưu có thể trở thành một vấn đề
Phương pháp 2:
- Giữ một hình ảnh cơ bản trong docker hub
- Thêm chiến tranh bên ngoài và chạy
- Kích thước phân phối nhỏ hơn (chỉ chiến tranh), nhưng bước bổ sung mà nhóm triển khai cần phải biết tên hình ảnh để chạy
Cách tiếp cận nào trong số này thường được sử dụng trong sản xuất?
Không có thông tin gì về nó - cả hai đều được sử dụng cũng như tùy chọn thứ ba: vì Docker vẫn còn tương đối trẻ. Cách tiếp cận 1 cũng khá tình huống của nó - không thực sự hoạt động khi bạn muốn triển khai nhiều phần ứng dụng của các dự án khác nhau cho cùng một cá thể Tomcat chẳng hạn. Câu hỏi của bạn về cơ bản là "khi bạn nhúng máy chủ trong khung ứng dụng của mình và khi nào bạn giữ chúng bị cô lập". – Gimby
Như @Gimby nói đó không phải là cách tiêu chuẩn để làm điều đó.Cá nhân tôi sẽ chọn phương pháp thứ hai, hoặc có thể chỉ có hình ảnh cơ sở, và từ đó chia sẻ cuộc chiến với khối lượng Docker hoặc tiêm chiến tranh thông qua một kịch bản shell chạy mỗi khi container được tạo ra (có khả năng truyền một số tham số đến quản lý một số cuộc chiến tranh). Dù sao việc thực hiện lựa chọn nên phụ thuộc vào mục đích: Nếu bạn muốn hình ảnh docker của bạn để phát triển, chọn một cái gì đó giống như cách tiếp cận thứ hai. Mặt khác, bạn muốn hình ảnh để phân phối, có thể là hình ảnh đầu tiên sẽ phù hợp hơn. –