我在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'
,可能会得到不同的结果。
dep=ver
)。 'dep<majver'
是首选。 npm
和yarn
等软件包管理器可以很好地解决这个问题。版本锁定文件。
您在版本控制下有两个文档:
'dep<majver'
dep=ver
分辨率,它满足您的所有约束。
'dep<majver'
约束条件的最新版本时,才会故意重新生成 。是否有某种类型的Alpine apk概念能够实现&#34;版本锁定文件的作用&#34;
有一个明显的 Docker 解决方案:在单独的 Dockerfile中执行
apk add 'dep<majver'
步骤。使用该Dockerfile作为基本映像。只有当你准备好碰撞你的依赖关系时才重建那个基础Docker镜像。
但我很好奇是否有 Alpine apk 解决方案,因为这可以被视为包管理关注点,而不是配置关注。