Docker 中构建时间较长的微服务

Microservice with long build time in Docker

我们有一个内部 C++ 工具,我们正在将其作为 docker 微服务进行研究,并想知道它是否是个好主意。

问题是该工具有很多依赖项,包括 GDAL,下载和编译可能需要 30 分钟。

通常我的配置步骤如下:

  1. git clone gdal
  2. ./配置;制作;安装;
  3. git 克隆我的工具
  4. 制作我的工具

我的问题是我应该如何使用 docker 解决这个问题?我可以在我的 Dockerfile 中放入 "RUN" 语句,但构建容器需要很长时间,而且每个容器都超过 600MB。我想知道有没有更好的方法。

gdal 创建一个单独的基础图像,然后以此为基础制作最终图像。这样你就很少需要重建 gdal.

至于图像大小,目前没有清晰的方法来区分 docker 图像的构建和运行时依赖性。在工作中,我们求助于一些 bash 胶水,它基本上可以实现嵌套 docker 构建。有关详细信息,您可以查看此 repo.