首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >apt-get dockerfile中的更新会破坏应用程序的一致性吗?

apt-get dockerfile中的更新会破坏应用程序的一致性吗?
EN

Stack Overflow用户
提问于 2018-08-29 07:44:08
回答 1查看 880关注 0票数 0

在我所看到的docker文件中,以及在编写docker文件的最佳实践中:https://docs.docker.com/engine/reference/builder/#copy,当使用apt-get安装某些包时,apt-get update总是首先运行。我担心这一点,因为我们在相应的docker容器中构建的应用程序将依赖于这些已安装的软件包,如果在最新版本的已安装软件包中存在一些不一致,我们构建的软件将不再正常工作。为什么我们不指定包的版本,而是使用apt-get update

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 07:58:06

apt-get的手册页

update用于从源重新同步包索引文件。可用包的索引从/etc/apt/Soures.list中指定的位置获取。例如,当使用Debian归档时,此命令检索并扫描Packages.gz文件,以便获得有关新的和更新的包的信息。应始终在升级或dist-upgrade之前执行更新。请注意,由于无法预先知道程序包文件的大小,因此总体进度将不正确。

您可以尝试在docker映像上不运行update的情况下运行apt-get install,但是您可能会发现,由于包索引已过期,许多内容将无法安装。

一旦更新了包数据,您就可以在运行install时指定包的特定版本。

代码语言:javascript
复制
apt update && apt install -y \
    git=1:2.7.4-0ubuntu1.4

使用docker容器的示例:

代码语言:javascript
复制
> sudo docker run -it ubuntu:16.04 /bin/bash
# root@513eb786d86d:/# apt install git
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
root@513eb786d86d:/# apt install git=1:2.7.4-0ubuntu1.4
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package git
root@513eb786d86d:/# apt update
...
root@513eb786d86d:/# apt install git=1:2.7.4-0ubuntu1.4
# works this time!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52067577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档