发行版 Java Docker 映像错误



当我尝试使用无发行版 java 基础映像创建 docker 映像时, 当我包含任何 shell 命令(如"mkdir"、"chmod"(时,我收到以下错误 非常感谢对此的任何帮助。

OCI 运行时创建失败:container_linux.go:348:启动容器进程导致"exec:\"/bin/sh\":stat/bin/sh:没有这样的文件或目录":未知

distroless提供了一个包含 shell 的debug映像,以便您可以exec到其中:

gcr.io/distroless/java:debug

debug图像包含忙碌框。您可以通过以下方式使用 Docker 运行此映像:

docker run -it --entrypoint "/busybox/sh" gcr.io/distroless/java:debug

如果您想使用distroless作为基础直接在 Maven 或 Gradle 项目中构建 Java Docker 映像,请查看 Jib。

如果您查看无发行版基本映像中的内容列表,它只是不包括 shell、mkdir、chmod 或其他类似的东西。 Java 映像添加了 JVM,仅此而已。 可能无法基于该映像构建一个映像,该映像的功能远远超过在预构建的 jar 中COPY,并设置指向它的CMD,也许在此过程中设置一些默认ENV变量。

如果您需要标准 Linux 发行版中包含的基本工具,那么您希望从功能更强大的基础映像(如标准 openjdk 映像(开始。

发行版提供了一个包含 shell 的调试映像。在pom或从命令提示符运行docker中:

步骤如下:

绒球变化 :

<from>
<image>gcr.io/distroless/java:11-debug</image>
</from>

码头工人命令:

Docker exec -it sh

最新更新