簡體   English   中英

將 Spring Boot Web 和 Batch 應用程序打包在一起以進行 PCF 部署

[英]Package both Spring Boot Web and Batch application together for PCF deployment

這聽起來可能不費吹灰之力。 但我想將一個 Spring Boot Web 應用程序和一個 Java 程序(又名批處理作業)打包在一起並將其部署到 PCF。

批處理將只是坐在那里什么都不做。 但我將從命令行運行它。 (pcf run-task )。

我們如何打包?

我認為有多種方法可以做到這一點,但從高層次來看,您需要以與您嘗試執行應用程序的方式一致的方式打包應用程序。

對於您的 Web 應用程序,您將希望它成為主要命令。 當 Java buildpack 運行時,它會檢測一個 Spring Boot 應用程序並創建一個能夠運行您的應用程序的啟動命令。 最簡單的方法是不要以會影響或破壞包裝的方式更改您的包裝。 只需讓 buildpack 選擇 start 命令並使用它。

如果您可以在本地使用java -jar您的應用程序並啟動您的 Web 應用程序,那么您應該一切准備就緒。 這對於 buildpack 來說應該足夠了。

現在,對於您的批處理應用程序。 如果您有一個聯合代碼庫,其中 web 和批處理代碼在同一個項目中並被打包到同一個 JAR 文件中,那么只需執行由 Java buildpack 為您的 web 生成的命令應用程序並修改它以啟動不同的類(可能還有內存限制)。 命令的其余部分應該沒問題。

如果您有單獨的代碼庫,那么您需要以某種方式將兩者結合起來。 當您運行cf push -p path/to/jar ,cf CLI 將提取並上傳 JAR 中的所有文件。 這就是您需要加入兩個代碼庫的原因,因為您只能為您的應用程序上傳一個 JAR 文件。

我認為一種簡單的方法是將批處理應用程序的所有編譯代碼添加到 JAR 中的子目錄下,例如batch/... (請注意您選擇的子目錄,您要確保'不會通過您的 Web 應用程序下載來公開您的批處理應用程序)。 它應該以這種方式上傳就好了,它不應該影響 Java buildpacks 檢測和運行您的 Web 應用程序的能力。

然后,您可以使用 Java buildpack 生成的啟動命令,調整類路徑以指向子目錄,調整啟動類,可選地調整內存設置並使用它來啟動您的批處理應用程序。

同樣,我確定您可能還有其他組合方式,但我希望這涵蓋了 Cloud Foundry 和 Java buildpack 的限制因素,以便您可以以適合您的項目的方式將內容混合在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM