#google-chrome #docker #dockerfile #debian-jessie
#google-chrome #docker #dockerfile #debian-jessie
Вопрос:
В настоящее время я сталкиваюсь с проблемой при установке Google Chrome в моем docker — эта настройка работала вчера, но с сегодняшнего дня я получаю эту ошибку —
Вот как я устанавливаю Chrome
ENV CHROME_VERSION "google-chrome-stable"
RUN apt-get update
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
amp;amp; echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
amp;amp; apt-get -qqy install
${CHROME_VERSION:-google-chrome-stable}
amp;amp; rm /etc/apt/sources.list.d/google-chrome.list
amp;amp; rm -rf /var/lib/apt/lists/*
Это выдает ошибку
W: Не удалось выполнить выборку http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 не найдено
E: Не удалось загрузить некоторые индексные файлы. Они были проигнорированы или вместо них использовались старые.
Если я удалю apt-get update
часть, то вышеуказанная ошибка не появится, но google-chrome-stable
не найдена
ENV CHROME_VERSION "google-chrome-stable"
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
amp;amp; echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
amp;amp; apt-get -qqy install
${CHROME_VERSION:-google-chrome-stable}
amp;amp; rm /etc/apt/sources.list.d/google-chrome.list
amp;amp; rm -rf /var/lib/apt/lists/*
Тогда ошибка
E: Не удается найти пакет google-chrome-стабильный
Кроме того, я нашел ссылку, которая рекомендует удалить jessie
— https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html
Как я могу настроить удаление обеих ошибок, поскольку вчера все работало нормально, и моя сборка docker прошла успешно.
Ответ №1:
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
действительно выдает 404. Я не знаю, почему это так, но вы не единственный пострадавший: https://github.com/docker-library/official-images/issues/3551
Итак, в качестве обходного пути вы должны закомментировать строку, содержащую этот URL, в sources.list
перед запуском apt-get update
, чтобы убедиться, что это не приведет к сбою. Я использовал sed
для этого ( sed -i -- 'samp;deb http://deb.debian.org/debian jessie-updates mainamp;#deb http://deb.debian.org/debian jessie-updates mainamp;g'
).
Итак, я мог бы успешно установить chrome, изменив ваш файл Dockerfile, чтобы он выглядел как:
FROM debian:jessie
ENV CHROME_VERSION "google-chrome-stable"
RUN sed -i -- 'samp;deb http://deb.debian.org/debian jessie-updates mainamp;#deb http://deb.debian.org/debian jessie-updates mainamp;g' /etc/apt/sources.list
amp;amp; apt-get update amp;amp; apt-get install wget -y
ENV CHROME_VERSION "google-chrome-stable"
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
amp;amp; echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list
amp;amp; apt-get update amp;amp; apt-get -qqy install ${CHROME_VERSION:-google-chrome-stable}
CMD /bin/bash
Комментарии:
1. Я попробовал это в моем локальном docker, и он застрял на
Reading package lists...
2. Я могу подтвердить, что
Reading package lists...
требуется довольно много времени (и оно отображается два раза), но оно продолжается через ~ 20 секунд. Пожалуйста, повторите попытку с помощью —no-cache в вашейdocker build
команде .. и дайте ей некоторое время. Пробовал на двух разных машинах.3. Хм. Я жду больше минуты, а он еще не сдвинулся с места. Запуск с
--no-cache
ничем не отличается.