對于情況下,我要建編譯GraalVM機映像運行在一個Java應用程式distroless在Kubernetes泊塢窗影像。
我一直在嘗試做一些相當簡單的事情,但遇到了麻煩:我想通過-XmxNNN. 為此,我想用來運行應用程式的選項將保存在環境變數中。問題的出現是由于使用了 distroless 影像——它沒有 bash,因此ENTRYPOINT /application $OPTIONS不起作用。
GraalVM 是否有自己支持的環境變數,或任何其他設定方式?
我不想:
- 對 Docker 鏡像中的值進行硬編碼
- 通過在本機映像構建期間預定義值來硬編碼值
uj5u.com熱心網友回復:
您可以使用busybox在 distroless 容器中獲取外殼:
FROM gcr.io/distroless/base
...
COPY --from=amd64/busybox:1.31.1 /bin/busybox /busybox/busybox
RUN ["/busybox/busybox", "--install", "/bin"]
CMD ["/bin/sh", "-c", "java -version"]
您可以在Dockerfile 此處找到此類示例。
但我認為不需要這個busybox shell。
AltoughENTRYPOINT /application $OPTIONS不作業,這將作業ENTRYPOINT ["myapp", "arguments"]
請注意,默認情況下 distroless 影像不包含外殼。這意味著 Dockerfile ENTRYPOINT 命令在定義時必須以向量形式指定,以避免容器運行時以 shell 為前綴。
來源:github
uj5u.com熱心網友回復:
我不確定它是否會起作用,但您可以嘗試將環境變數JAVA_TOOL_OPTIONS設定為所需的值:
JAVA_TOOL_OPTIONS=-XmxNNN
從檔案:
此環境變數允許您指定工具的初始化,特別是使用 -agentlib 或 -javaagent 選項啟動本機或 Java 編程語言代理。在以下示例中,設定了環境變數,以便在 > 應用程式啟動時啟動 HPROF 分析器:
$ export JAVA_TOOL_OPTIONS="-agentlib:hprof"此變數還可用于使用其他選項擴充命令列以用于診斷目的。例如,您可以提供
-XX:OnError選項來指定發生致命錯誤時要執行的腳本或命令。
所述GraalVM檔案本身提供使用的一個例子,以及,盡管在不同的背景關系中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/369496.html
