Docker:更新映像和registry

更新和存储图像的正确工作stream程是什么?

例如:

  1. 我从Github下载源代码(使用Dockerfiles的项目,docker-compose.yml)
  2. 我运行“docker构build”
  3. 我将新的形象推向Docker Hub(或AWS ECR)
  4. 我在源代码中做了一些改变
  5. 将更改推送到Github
  6. 而我现在应该做什么来更新registry(Docker Hub)?

A)我应该再次运行“dockerbuild设” ,然后推新图像(新标签)到registry?

B)我应该以某种方式提交对现有图像的更改并更新Docker Hub上的现有图像?

这将取决于你将使用你的泊坞窗图像和你采用什么“释放”的政策。

我的build议是,您可以使用jenkins和github webooks等持续集成工具,将您在Docker Hub上保留的标签与您在github中的发行版/标签同步,并尽可能自动化。

然后你的stream程变成:你做你的代码修改,并把它们整合到github中,理想地使用pull requestscheme。 这意味着您的代码将被合并到您的主分支。 你的jenkins被configuration成当master被改变的时候,它会根据你的docker文件生成并推送到Docker中心。 这将抹去你的“最新”的标签,并确保你的最新标签docker集线器总是与你的主版本在github上同步

如果你需要保持额外的标签,这通常是因为你的软件的分支或者不同。 你会像上面一样做,通过jenkins和github webhooks与非主分支挂钩的标签。 对于这个单独的,看看如何正式图书馆组织在github上(例如postgres或mysql图像)。