我的项目有一个应用程序服务器和一个C ++库。该库不依赖于应用程序服务器。供应商具有用于应用程序服务器的Docker映像。我需要部署一个C ++库,该库需要可以从每个应用程序服务器节点/荚访问。
我编写了一个基于供应商映像的Dockerfile,将库编译并复制到位。它可以工作,但是,每当有新版本的应用程序服务器时,我都需要从头开始重新构建C ++库。鉴于缺乏依赖性,这些似乎并不是最佳选择。
天真地,我期望能够将C ++库构建为“空”映像并将其(像文件系统一样)安装在每个pod中。这样,服务器和库就可以分别维护。
在供应商Dockerfile上构建该架构的“正确”方法吗?还是有一种更像我的“理想化”愿景的解决方案?
我希望答案是显而易见的,我只需要正确的术语来搜索...非常感谢您的指针。
答案 0 :(得分:1)
使用Kubernetes至少有两个选项可以与容器映像分开管理库:
-----------------------------
| ID | Title | parent-cat_id|
-----------------------------
| 1 | Main | Child |
| 2 | Child | null |
-----------------------------
到download并将其放在应用程序服务器的pod文件系统中。 答案 1 :(得分:1)
正如您所说,您可以将C ++库构建为一个“空”映像。对于所有部署,您都可以将其用作基础映像。这样,您可以避免为每个部署构建库。
Ex:使用C ++库构建映像。让我们称之为lib-img。 当供应商正在构建映像时,供应商可以使用lib-img作为基础映像,也可以向供应商所需的lib-img添加其他依赖项。
您还可以使用init容器将库拉到Pod上。