Проблема установки пакета 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Надеюсь, это полезно.

Другие вопросы по тегам