我们的生产/登台 docker 镜像构建从我们的存储库中提取最新代码,然后安装所有必需的依赖项,这个过程需要一段时间。
这就是为什么在开发中我们使用卷将应用程序代码映射到本地文件夹。
有没有办法将映射卷中的本地更改提交到实际的图像数据存储?这样我们就不必一直重建它?
我们的生产/登台 docker 镜像构建从我们的存储库中提取最新代码,然后安装所有必需的依赖项,这个过程需要一段时间。
这就是为什么在开发中我们使用卷将应用程序代码映射到本地文件夹。
有没有办法将映射卷中的本地更改提交到实际的图像数据存储?这样我们就不必一直重建它?
能够放置您的代码并标记该 docker 映像是人们使用它的目的。您不应该在生产运行时部署代码。相反,您应该构建图像并根据版本标记它们。
您想知道您的产品正在运行什么,并且您还希望能够回滚到以前的版本。
现在回到重建代码部分。有多种方法可以缩短构建时间
创建基础镜像
您可以创建基础镜像,然后将代码放在该基础镜像之上。此基础映像将包含您所需的软件(节点等)。在您的 Dockerfile 中,您只需复制代码。
代替 Git Checkout 使用标签 URL
您可以将特定的分支/标签下载为 zip 文件,而不是整个存储库,然后将其解压缩。我看到有时 Git 存储库是 100MB,而代码只有 4-5 MB。这可以节省您的时间
使用多阶段构建
多阶段构建不会节省您的构建时间,但它们会节省您的图像大小。仅当您部署大量容器时才需要这样做