Docker 使用最新版本的应用程序更新图像的流程

Docker flow for updating images with latest version of application

我们的 production/staging docker 映像构建从我们的存储库中提取最新代码,然后安装所有必需的依赖项,此过程需要一段时间。

这就是为什么在开发中我们使用卷将应用程序代码映射到本地文件夹。

有没有办法将映射卷中的本地更改提交到实际图像数据存储?这样我们就不必一直重建它了?

能够将您的代码和标签放在 docker 图像上,这就是人们使用它的目的。您不应该在生产中的 运行 时间部署代码。相反,您应该构建图像并根据版本标记它们。

您想知道您的产品 运行ning 是什么,并且您还希望能够回滚到以前的版本。

现在回到重建代码部分。有多种方法可以缩短构建时间

创建基础镜像

您可以创建基本图像,然后将代码放在该基本图像之上。此基础映像将包含您必需的软件(Node 等)。在您的 Dockerfile 中,您只需复制代码。

而不是 Git 结帐使用标签 URL

您可以下载特定的 branch/tag 作为 zip 文件而不是整个存储库并解压缩。我有时看到 Git 存储库是 100MB,而代码只有 4-5 MB。这可以节省您的时间

使用多阶段构建

多阶段构建不会节省您的构建时间,但它们会节省您的图像大小。仅当您部署大量容器时才需要这样做