我正在將 Micronaut 應用程式作為 Docker 容器運行。
在 Kuberentes 運行時,將有一個具有確定值的 JAVA_OPTS 環境變數,例如: -XX:MaxRAMPercentage=45.0
執行時./gradlew dockerBuild我可以看到以下 Docker 層:
Step 7/7 : ENTRYPOINT ["java", "-jar", "/home/app/application.jar"]
按照檔案,我嘗試添加對 JAVA_OPTS 的參考:
build.gradle.kts
dockerfile {
args("\$JAVA_OPTS")
}
Docker 構建日志:
Step 7/7 : ENTRYPOINT ["java", "$JAVA_OPTS", "-jar", "/home/app/application.jar"]
這樣做的問題是容器不會啟動,因為 $JAVA_OPTS 不會被 env 變數值替換。發生這種情況是因為它使用了 ENTRYPOINT的exec 形式。
有沒有辦法覆寫或調整 ENTRYPOINT 以便評估環境變數?
uj5u.com熱心網友回復:
按照您的檔案中的鏈接,您似乎可以根據您的要求執行以下操作來覆寫入口點,以解釋命令中的 env var:
entryPoint('sh', '-c', 'java $JAVA_OPTS -jar /home/app/application.jar')
它應該在生成的 Dockerfile 中轉換為以下內容:
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /home/app/application.jar"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/403815.html
標籤:
