【问题标题】:Docker development version/snapshotDocker 开发版本/快照
【发布时间】:2016-08-22 17:28:06
【问题描述】:

我正在尝试实现与 maven 为 SNAPSHOT 版本提供的相同机制。 基本上,每当我对 Dockerfile 进行开发时,我都希望能够在我的私有注册表中创建临时版本。

我可以创建一个标签并强制推送此标签,但我宁愿在注册表中为给定标签保留一个版本。

如果 Docker 镜像 A 依赖于 FROM B(例如在 1.2.SNAPSHOT 上),那么最新的 1.2.x 标签将被拉取。

图像版本中是否有一个特殊的关键字可以执行我真正想要实现的目标?

希望这足够清楚:)

【问题讨论】:

  • 不确定我的理解是否正确。例如,您有标签 1.1.11.1.21.1.3 并且已经有了一个新的主要版本 1.2 以及以下一些次要版本。然后,如果您在版本1.1 中发现了一些问题,那么您想构建一个带有标签1.1.4 的新版本(我们称之为“补丁”),并且您希望所有进一步的主要版本(如1.2.<latest>)都将受到影响这个“补丁”?
  • 我不禁认为这里的正确答案是将每个构建推送两次,一次作为1.1.x,一次作为<snapshot> 命名标签。 1.1.x 永远不会改变,但<snapshot> 会。

标签: maven docker versioning dockerfile docker-registry


【解决方案1】:

我没有使用它们,但听起来 Maven 快照是用来指示开发版本的。因此,总是会检查并获取新版本。

要在 docker 中获得类似的行为,我相信您需要在每次构建时检查更新的基础映像。这是 docker build 中的一个选项:--pull

docker build --pull -t myimage .

【讨论】:

  • 你说得对,快照是开发版本。但是,它们并不总是从远程注册表/存储库中获取。仅当远程源较新时才拉取版本
  • 很高兴知道 - 在我的测试中 --pull 工作方式相同 - 如果本地版本是最新的,它会跳过下载。
猜你喜欢
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
  • 2012-07-13
  • 1970-01-01
相关资源
最近更新 更多