Dockerfile-Debian Jessie 404:找不到软件包

时间:2019-04-04 10:17:26

标签: python linux docker ubuntu debian

我正在尝试在Debian 9.8上设置一个Docker容器,但是在运行docker-compose up -d时仍然出现以下错误:

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages  404  Not Found

这将导致流程缩短。

我有以下Dockerfile(为缩短可读性),其中有2个对apt-get update的调用,我修改了这些建议from these pages无用:

RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get -o Acquire::Check-Valid-Until=false update
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
RUN apt-get update

我还删除了在/etc/apt/sources/list中可以找到的对jessie的所有引用。我想念什么?

编辑我没有意识到项目中有多个pldocker文件,所以我一个一个地编辑了所有文件。就是说,有没有一种集中流程的方法?

2 个答案:

答案 0 :(得分:2)

我运行了以下命令,没有问题:

$ cat df.jessie-updates
FROM python:3.5.2
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
RUN apt-get update \
 && apt-get install -y git

$ DOCKER_BUILDKIT=0 docker build -f df.jessie-updates -t test-jessie-updates .
Sending build context to Docker daemon  23.04kB
Step 1/3 : FROM python:3.5.2
 ---> 432d0c6d4d9a
Step 2/3 : RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
 ---> Running in f2a056c4c0f2
Removing intermediate container f2a056c4c0f2
 ---> 07fff7724882
Step 3/3 : RUN apt-get update  && apt-get install -y git
 ---> Running in a862679899c0
Ign http://deb.debian.org jessie InRelease
Get:1 http://deb.debian.org jessie Release.gpg [2420 B]
Get:2 http://deb.debian.org jessie Release [148 kB]
Get:3 http://security.debian.org jessie/updates InRelease [44.9 kB]
Get:4 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Get:5 http://security.debian.org jessie/updates/main amd64 Packages [825 kB]
Fetched 10.1 MB in 8s (1130 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Suggested packages:
  gettext-base git-daemon-run git-daemon-sysvinit git-doc git-el git-email
  git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn
Recommended packages:
  less rsync
The following packages will be upgraded:
  git
1 upgraded, 0 newly installed, 0 to remove and 161 not upgraded.
Need to get 3709 kB of archives.
After this operation, 371 kB of additional disk space will be used.
Get:1 http://security.debian.org/ jessie/updates/main git amd64 1:2.1.4-2.1+deb8u7 [3709 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 3709 kB in 2s (1557 kB/s)
(Reading database ... 21602 files and directories currently installed.)
Preparing to unpack .../git_1%3a2.1.4-2.1+deb8u7_amd64.deb ...
Unpacking git (1:2.1.4-2.1+deb8u7) over (1:2.1.4-2.1+deb8u2) ...
Setting up git (1:2.1.4-2.1+deb8u7) ...
Removing intermediate container a862679899c0
 ---> fc422b5b9188
Successfully built fc422b5b9188
Successfully tagged test-jessie-updates

这是您描述为无效的based off of your second link。如果您有一个MCVE,其中包括一个最小而完整的dockerfile,以及运行构建的完整输出,则可以帮助我们进一步调试。

答案 1 :(得分:1)

任何可能遇到这个问题的人jessie-update失败或jessie-backports失败,此解决方案都对我有用。

 RUN echo 'deb http://archive.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/jessie-backports.list
 RUN sed -i '/jessie-updates/d' /etc/apt/sources.list
 RUN apt-get -o Acquire::Check-Valid-Until=false update`