【问题标题】:fix version of installed package via apt-get通过 apt-get 修复已安装软件包的版本
【发布时间】:2019-01-23 14:10:55
【问题描述】:

我遇到了一个奇怪的问题:

我们应该修复已安装软件包的版本吗? 会不会是某些主要版本与我的 php 代码不兼容?

示例:我在我的 docker 上的每个构建中安装这些包:

apt-get install git apt-get install zip apt-get install unzip apt-get install zlib1g-dev

有没有可能有一天,一个新的主要主要版本出现并且与我由 php-fpm 执行的应用程序代码不兼容?

【问题讨论】:

  • 在所有其他现代包管理系统中,版本固定被认为是 FWIW 的最佳实践。 APT 使其更难,因为包服务器会立即删除非当前包。

标签: php docker dockerfile apt


【解决方案1】:

首先,您列出了 gitzip 等软件包。您打算如何让它们与您的代码不兼容?

第二,当然,新的编译器会警告你的代码使用了弃用的东西。但这与docker 无关。 Docker 是容器化技术,它不关心让你的代码保持最新。

如果您正在讨论在下载 docker 映像后升级现有组件 - 那可能值得这样做。

一般方法可能如下:在您的开发过程中,您为 master 开发分支使用最新的(升级的)图像和工具,但是一旦发布,您就可以使用 tag 他们,对他们来说,它可以制作所有使用过的工具的快照(包括 docker 图像)很有用,以便将来能够重现它们。

例如,我们将ubuntu:latest 图像用于master 分支,对于已发布的版本,我们使用ubuntu:19.04 之类的版本化图像,同时对图像进行备份以确保其安全,以防从公共注册表中删除。

【讨论】:

  • 感谢您的回答,这是我所期望的。最后一个问题,pecl是否使用机器上安装的php版本来获取正确版本的包?示例:“pecl install xdebug” ==> 我应该精确 xdebug 版本还是它自己会找到兼容的版本?
  • 对不起,伙计,我对pecl没有经验
猜你喜欢
  • 2014-06-23
  • 2021-05-24
  • 2016-09-28
  • 2023-01-04
  • 2020-12-22
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
相关资源
最近更新 更多