Chắc cũng tùy dự án khác nhau, và việc build ngoài hay trong cũng chưa có tạo ra vấn đề lớn nên mỗi project có 1 cách làm khác nhau. Có một số dự án mình biết thì kể cả ở gitlabci / azure devops thì build jar cũng nằm trong docker container luôn cho dù mục đích là không phải là deploy và chạy trong docker container.
Cách họ build là vẫn copy code vào trong docker, build ra jar file rồi copy jar file trong container đó ra ngoài sau đó dùng làm mục đích khác.
Mục đích đó có thể là copy file jar vào docker để build image deploy như bài viết ở bên trên. Hoặc file jar đó cũng để lưu ở artifact repository, hoặc dùng làm library nếu không phải là runnable jar... etc.
Việc build ở bên trong container đảm bảo 1 việc là ở bất kỳ môi trường nào cũng có thể build được, không bị những lỗi lạ như permission hoặc biến môi trường của máy host, pipelines. Kết quả build jar ở trong 1 docker container sẽ có tính nhất quán cao, không có sự khác biệt giữa việc build ở các máy khác nhau chỉ cần có docker là được.
Nếu như có 1 bước trước đó trong pipelines có được file jar đó thì mình nghĩ việc copy jar đó vào docker để build tiếp image deploy như chủ thớt là hợp lý. Hoặc có thể pipelines build image deploy không cần build jar file mà pull từ 1 private artifact repository về ...etc lúc này không cần source code để có được jar file.
Còn build cách nào trực tiếp trên môi trường pipelines bên ngoài docker hay bên trong docker là 1 chuyện khác, có thể project phức tạp không thể build bên trong docker nên người ta phải build bên ngoài, nhưng trước giờ may mà mình chưa gặp project dạng đó. Nếu build được bằng docker thì mình luôn sẽ build bên trong docker.
Sau này nếu pipeline agent có upgrade thay đổi version linux, hay có mang nó qua các pipelines khác gitlab, github, azure devops thì môi trường của những CI đó sẽ không làm ảnh hưởng gì đến kết quả build. Và trong pipelines cũng không đảm bảo có sẵn toàn bộ ngôn ngữ + version của java/python/golang/node ... etc nên build trong docker vẫn là lựa chọn số 1 của mình. Chỉ sợ sau này docker hub đóng cửa thôi