我有一個構建簡單應用程式的 GitLab 管道,例如使用目標的https://github.com/spring-projects/spring-petclinic 。spring-boot:build-image構建在本地作業,我按預期部署或運行??映像。但是,要像這樣在我們的生命周期創建者上進行部署:
image: paketobuildpacks/builder
variables:
REGISTRY_GROUP_PROJECT: $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
before_script:
- mkdir ~/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_JOB_TOKEN\"}}}" >> ~/.docker/config.json
script:
- /cnb/lifecycle/creator -app=. $REGISTRY_GROUP_PROJECT:latest
這會正確設定 Kubernetes 運行程式,并且我可以按預期執行構建,而無需更改pom.xml定義中的任何內容。但是,當嘗試更新其中一個依賴項時,我必須將環境變數設定為其中一層,因為由于某種原因,當前版本不會使用我想要的正確打包 jar。
所以我想export BP_MAVEN_BUILT_MODULE=myModule在這一步之前做一個非常簡單的事情script——但是,生命周期創建者根本沒有注意到這一點。該檔案使我相信我無法設定環境變數而不必為此創建整個構建包 - 我正在嘗試尋找一種不需要我更改構建完成方式的整個方式的解決方案對于單個環境變數。
我可以驗證環境變數是否被忽略,因為它仍然使用默認值并在執行步驟上列印它,但結果仍然是構建失敗。我嘗試以不同的方式設定變數,但它從未被拾取。
是否有一些非常簡單的東西我錯過了,或者除了為此創建一個構建包之外真的沒有其他方法嗎?
請注意,我可以通過在我的機器上運行來創建影像:
$ pack build myModule --builder paketobuildpacks/builder:base --env BP_MAVEN_BUILT_MODULE=myModule
它將使用包 0.27.0 正確獲取變數。
uj5u.com熱心網友回復:
所以只向我推薦了我發布后需要的確切答案... 使用 CNB Paketo Image-Labels-Buildpack 和生命周期創建者配置容器影像標簽
只需更改platform命令上的鍵即可正確使用環境名稱,如果要將 JVM_VERSION 更改為 17,則如下所示:
$ mkdir -p platform/env
$ echo "17.*" >> platform/env/BP_JVM_VERSION
$ /cnb/lifecycle/creator -app=. -platform platform $REGISTRY_GROUP_PROJECT:latest
必須創建platform檔案夾有點奇怪,我不確定它是否會改變其他東西,但@VeryDogeWow 有一個更好的方法來詢問同樣的事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/512583.html
上一篇:使用docker容器時PythonFastApi模型驗證失敗
下一篇:比較兩個回傳false的相同物件
