【发布时间】:2021-01-27 21:49:23
【问题描述】:
我有一个 docker 容器,我用它来构建软件和生成共享库。我想在另一个 docker 容器中使用这些库来实际运行应用程序。为此,我使用带有已安装卷的构建 docker 在主机上拥有这些库。
我的 RUNTIME 容器的 docker 文件如下所示:
FROM openjdk:8
RUN apt update
ENV LD_LIBRARY_PATH /build/dist/lib
RUN ldconfig
WORKDIR /build
当我使用以下内容运行时:
docker run -u $(id -u ${USER}):$(id -g ${USER}) -it -v $(realpath .):/build runtime_docker bash
我在 ldconfig -p 缓存中没有看到 /build/dist/lib 中的任何库。
我做错了什么?
【问题讨论】:
-
只有在容器运行时才读取来自主机的绑定挂载卷(当您使用
-v标志时)。在运行ldconfig的构建阶段,/build将为空。这可能是问题吗?可能您可以将ldconfig作为CMD运行,它在实际安装卷时在运行时执行。抱歉,如果我误解了您的预期效果。