首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用多级docker镜像将libnss3.so从一个镜像复制到另一个镜像

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

Stack Overflow用户
提问于 2021-05-25 18:35:02
回答 1查看 30关注 0票数 0

我需要使用"gcr.oi/distroless/java:8“镜像来保持我的镜像的轻量级。但是,当我运行程序时,我得到错误:“由FileNotFoundException: /usr/lib/x86_64_linux_gnu/linbnss3.so引起”和“无法初始化NSS”异常。因为我必须使用这个图像,所以我想从"FROM openjdk:8-jre-stretch“的另一个图像中复制这个丢失的文件/依赖项。请建议如何复制此依赖项。

EN

回答 1

Stack Overflow用户

发布于 2021-05-25 19:06:40

这个问题本身并不是非常具有描述性,因此我不能在这里给出一个具体的答案,也不能详细说明您在哪里犯了错误。但我可以给您一个基于Docker documentation中引入的示例的示例。

代码语言:javascript
复制
# syntax=docker/dockerfile:1
FROM gcr.oi/distroless/java:8
COPY --from=openjdk:8-jre-stretch /location/of/the/file/in/image /your/target/location
# After that, do your own stuff

COPY --from告诉Dockerfile从其他镜像中复制文件。如果该镜像存在于DockerHub中,则会从其中提取该镜像以启用副本。如果DockerHub中不存在该映像,则必须在本地拥有该映像。

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

如果文件在没有额外步骤的情况下没有出现在映像中,那么您可以使用多阶段构建。例如。

代码语言:javascript
复制
# 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 as builder

开始构建一个中间镜像,您可以稍后使用名称'builder‘引用该镜像。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67686244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档