如何使用多级docker映像将libnss3.so从一个映像复制到另一个映像

如何使用多级docker映像将libnss3.so从一个映像复制到另一个映像,docker,dockerfile,Docker,Dockerfile,我需要使用“gcr.oi/distroless/java:8”映像来保持映像的轻量级。但是,当我运行该程序时,我得到了错误:“由FileNotFoundException:/usr/lib/x86_64_linux\u gnu/LinbNS3.so引起”和“无法初始化NSS”异常。因为我必须使用这个映像,所以我想从另一个映像“from openjdk:8-jre-stretch”复制这个缺少的文件/依赖项。请建议如何复制此依赖关系。问题本身不是很具有描述性,因此我无法在这里给出具体答案,也无法详

我需要使用“gcr.oi/distroless/java:8”映像来保持映像的轻量级。但是,当我运行该程序时,我得到了错误:“由FileNotFoundException:/usr/lib/x86_64_linux\u gnu/LinbNS3.so引起”和“无法初始化NSS”异常。因为我必须使用这个映像,所以我想从另一个映像“from openjdk:8-jre-stretch”复制这个缺少的文件/依赖项。请建议如何复制此依赖关系。

问题本身不是很具有描述性,因此我无法在这里给出具体答案,也无法详细说明您在哪里犯了错误。但是我可以给你一个例子,这个例子是基于本节中介绍的例子

COPY--from告诉Dockerfile从其他图像复制文件。如果DockerHub中存在该图像,则将从该图像中提取该图像以启用复制。如果DockerHub中不存在该图像,则必须将其保存在本地

如果在实现我在这里给出的示例时遇到任何问题,请告诉我

如果没有其他步骤,映像中不存在中的文件,则可以使用多阶段构建。例如

# syntax=docker/dockerfile:1
FROM openjdk:8-jre-stretch as builder
# execute some logic that you need to create the file
FROM gcr.oi/distroless/java:8
COPY --from=builder /location/of/the/file/in/image /your/target/location
# After that, do your own stuff
代码

来自openjdk:8-jre-stretch作为构建器


启动中间映像的生成,您可以稍后使用名称“builder”引用该映像。

@user3462941如果解决方案对您没有帮助或接受答案,请作出响应。
# syntax=docker/dockerfile:1
FROM openjdk:8-jre-stretch as builder
# execute some logic that you need to create the file
FROM gcr.oi/distroless/java:8
COPY --from=builder /location/of/the/file/in/image /your/target/location
# After that, do your own stuff