apt get install can';在Dockerfile中找不到固定版本

apt get install can';在Dockerfile中找不到固定版本,docker,ubuntu,dockerfile,version,Docker,Ubuntu,Dockerfile,Version,在构建简单Dockerfile的过程中,从未找到固定版本的apt get install,并提供以下输出: E:找不到包ruby1.9.1-dev E:无法通过glob'ruby1.9.1-dev'找到任何包 E:无法通过正则表达式“ruby1.9.1-dev”找到任何包 E:找不到's3cmd'的版本'1.1.*' 我按照dockerfile最佳实践工作: 您可以在其中找到Dockerfile,其中包含所有apt get建议: FROM ubuntu:18.04 RUN apt-get up

在构建简单Dockerfile的过程中,从未找到固定版本的
apt get install
,并提供以下输出:

E:找不到包ruby1.9.1-dev
E:无法通过glob'ruby1.9.1-dev'找到任何包
E:无法通过正则表达式“ruby1.9.1-dev”找到任何包
E:找不到's3cmd'的版本'1.1.*'
我按照dockerfile最佳实践工作:

您可以在其中找到Dockerfile,其中包含所有apt get建议:

FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
    aufs-tools \
    automake \
    build-essential \
    curl \
    dpkg-sig \
    libcap-dev \
    libsqlite3-dev \
    mercurial \
    reprepro \
    ruby1.9.1 \
    ruby1.9.1-dev \
    s3cmd=1.1.* \
 && rm -rf /var/lib/apt/lists/*
我正在运行docker build,其中包括:

docker构建。


我还没有找到一个解决方案,用
apt get install
以另一种方式锁定版本。有人能推荐我怎么做吗?

ruby1.9.1和
ruby1.9.1-dev
不适用于
ubuntu:18.04

你可以在这里找到ubuntu版本


您也可以阅读此

谢谢您的回答。如果我使用的是受支持软件包列表中的版本,或者是带有占位符的版本,那么它就可以工作。在s3cmd的情况下,我可以使用s3cmd=2.0.1-2或s3cmd=2.0.*但是,如果在一年内我使用相同的Dockerfile构建映像,并且版本切换到3.0.0,s3cmd=3.0.0,我如何确保它仍然可以执行而不会中断?无论如何,非常感谢你的回答!然而,如果在一年内,我使用相同的Dockerfile构建一个图像,并且版本发生了变化,该怎么办。一般来说,所有的软件包版本都适用于特定的操作系统(Ubuntu),如果一个软件包添加了一个新版本,那么旧版本仍然可用。你只需要在你的开发环境和DockerfilePerfect之间同步,谢谢你,Max,我非常感谢你的回答。很高兴能帮助你。如果可以的话,把答案记下来