"版本锁定文件" for Alpine apk

时间:2017-12-07 12:51:32

标签: alpine

我在Docker容器中使用Alpine Linux 3.7 我在Dockerfile中执行了一些apk命令。

我已成功将我的依赖项固定到特定的主要版本:

apk add --no-cache \
'openssl<2' \
'freeradius<4' \
'freeradius-mysql<4'

但是当运行apk add命令时(构建Docker镜像时),此命令的确切行为对敏感。

在编写时,这些约束解析为:

apk add --no-cache \
'openssl=1.0.2m-r0' \
'freeradius=3.0.15-r3' \
'freeradius-mysql=3.0.15-r3'

如果我明年开设apk add 'dep<majver' ,可能会得到不同的结果。

  • 我不希望我的依赖项在不知情的情况下更改版本
    • 是的,甚至不是次要版本。我不相信semver 100%可以保证我不会破坏更改/回归,所以更改次要版本应该只在监督下进行
  • 我不想手写精确的版本分辨率(dep=ver)。 'dep<majver'是首选。

npmyarn等软件包管理器可以很好地解决这个问题。版本锁定文件。

您在版本控制下有两个文档:

  • 一个手动创建的文档,用于表达'dep<majver'
  • 一个版本锁定文件,表达(针对每个依赖关系)特定dep=ver分辨率,它满足您的所有约束。
    • 这将是机器生成的。只有当您想要将每个依赖项更新为满足'dep<majver'约束条件的最新版本时,才会故意重新生成

是否有某种类型的Alpine apk概念能够实现&#34;版本锁定文件的作用&#34;

  

有一个明显的 Docker 解决方案:在单独的 Dockerfile中执行apk add 'dep<majver'步骤。使用该Dockerfile作为基本映像。只有当你准备好碰撞你的依赖关系时才重建那个基础Docker镜像。

但我很好奇是否有 Alpine apk 解决方案,因为这可以被视为包管理关注点,而不是配置关注。

0 个答案:

没有答案