首页 > 解决方案 > 如何为 c++ 可执行文件创建 Docker-Image 而无需添加所有依赖项

问题描述

我有一个程序,我在我的主机上编译并希望在 Docker-Container 中运行它。现在,它需要很多依赖才能运行。首先,我尝试通过运行找出所有依赖项, ldd ./my_prog 然后开始将它们复制到我的 docker ubuntu 映像中。但是随后复制的依赖项需要更多的依赖项,因此如果我不想将整个主机系统复制到容器中,这似乎并不乐观。然后我读到静态链接我的程序可能会解决这个问题。但是由于我有一个 CMake 项目,所以我不知道该怎么做才能使其静态链接我的依赖项。这甚至是一种有效的方法吗?如果是这样,我该怎么做?

TL;DR:我有一个 c++ 程序,我想在 docker-container 中运行,并尽量避免将很多依赖项复制到映像中。

编辑:运行我的 progldd给了我一个依赖项列表,我从中提取了所有路径,并将所有这些 .so 文件复制到我的容器中。然而它仍然抱怨没有找到所有东西。

标签: c++dockerdynamic

解决方案


推荐阅读