Проблема установки пакета Python при сборке docker на основе образа docker r-base
Я хочу установить python в образе док-станции r-base. Когда я пытаюсь это:
FROM r-base:3.4.1
RUN apt-get update && apt-get install -y python3
Я получаю ошибку:
Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Когда я пытаюсь это:
FROM r-base:3.5.1
RUN apt-get update && apt-get install -y python3
Я получаю ошибку:
The repository 'http://deb.debian.org/debian testing Release' does not have a Release file.
Я могу использовать как R, так и Python, если я начну с базы для ноутбуков Jupyter, но я действительно хочу, чтобы это изображение было тонким, поэтому вместо этого я хочу начать с r-base. Обратите внимание, что пользователь USER root также не решил эти проблемы.
1 ответ
Это действительно странно, как видите эту ссылку
Сервер deb.debian.org сам не имеет пакетов, но в имени есть записи SRV в DNS, которые позволяют apt растягиваться и позже находить места.
Может быть, ваша локальная сеть - это нечто особенное, что-то вроде:
Если вы попали на сервер позади deb.debian.org напрямую, либо потому, что вы используете более старую версию apt, либо из-за того, что вы используете HTTP-прокси, который не поддерживает записи SRV, ваши запросы будут перенаправлены по HTTP в один из экземпляров CDN. Если вы хотите избежать перенаправлений, вы можете выбрать один экземпляр напрямую.
Итак, предлагаю добавить прямой источник APT в вашем Dockerfile
примерно так:
FROM r-base:3.5.1
RUN echo "deb http://cdn-fastly.deb.debian.org/debian stable main" > /etc/apt/sources.list && \
echo "deb http://cdn-fastly.deb.debian.org/debian-security stable/updates main" >> /etc/apt/sources.list && \
rm -fr /etc/apt/apt.conf.d/default && \
apt-get update && apt-get install -y python3
Если у вас есть прокси, пожалуйста, добавьте что-то вроде ENV http_proxy "http://your_proxy"
в Dockerfile
Надеюсь, это полезно.