#docker #travis-ci #debian-jessie
#docker #travis-ci #debian-jessie
Вопрос:
Я запускаю сборку Travis, и она завершается с ошибкой при сборке mysql: 5.7.27 docker image. Запускается файл Dockerfile apt-get update
, а затем я получаю сообщение об ошибке W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found
.
Используя curl, я вижу, что он перенаправляет, но перенаправление на URL приводит к 404. Кто-нибудь видел подобное поведение и у него есть средство устранения? Это в принципе невозможно исправить, пока debian не внесет изменения?
➜ ms git:(develop) curl --head http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
HTTP/1.1 302 Found
Date: Tue, 26 Mar 2019 16:03:04 GMT
Server: Apache
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Referrer-Policy: no-referrer
X-Xss-Protection: 1
Location: http://cdn-fastly.deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
Content-Type: text/html; charset=iso-8859-1
➜ ms git:(develop) curl --head http://cdn-fastly.deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
HTTP/1.1 404 Not Found
Server: Apache
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Referrer-Policy: no-referrer
X-Xss-Protection: 1
Content-Type: text/html; charset=iso-8859-1
Via: 1.1 varnish
Content-Length: 316
Accept-Ranges: bytes
Date: Tue, 26 Mar 2019 16:03:17 GMT
Via: 1.1 varnish
Age: 45
Connection: keep-alive
X-Served-By: cache-ams21028-AMS, cache-cdg20741-CDG
X-Cache: HIT, HIT
X-Cache-Hits: 6, 2
X-Timer: S1553616198.734091,VS0,VE0
Комментарии:
1. Добро пожаловать, смотрите Этот пост на U amp; L : unix.stackexchange.com/questions/508724 /…
Ответ №1:
Это связано с тем, что
поскольку Wheezy и Jessie были интегрированы в archive.debian.org структура недавно, начиная с сегодняшнего дня, мы удалили все архитектуры Wheezy и все архитектуры Jessie, отличные от LTS, из зеркальной сети.
(Как вы можете прочитать здесь)
Решение (в соответствии с https://github.com/debuerreotype/docker-debian-artifacts/issues/66#issuecomment-476616579 ) заключается в добавлении этой строки:
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list # Now archived
в ваш Dockerfile перед вызовом any apt-get update
при использовании debian: jessie. Это приведет к удалению jessie-updates
репозитория (который теперь вызывает 404) из sources.list.
Итак, пока следующее не работает:
FROM debian:jessie
RUN apt-get update
CMD /bin/sh
Это работает следующим образом:
FROM debian:jessie
RUN sed -i '/jessie-updates/d' /etc/apt/sources.list # Now archived
RUN apt-get update
CMD /bin/sh
Комментарии:
1. Работает как шарм. Спасибо!
2. Как это происходит? Похоже, что тысячи людей сталкиваются с этой проблемой на других форумах и с трекерами проблем Git. У меня был очень безобидный Dockerfile, который просто перестал работать. Есть ли что-то, о чем мы должны были знать, чтобы предотвратить ошибку? Или люди Debian просто сознательно взломали все контейнеры, а затем надеялись, что они разберутся с этим?