簡體   English   中英

基於r-base docker鏡像構建docker時Python包安裝問題

[英]Python package installation issue when docker build based on r-base docker image

我想在基於 r 的 docker 映像中安裝 python。 當我嘗試這個時:

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.

如果我從 jupyter notebook base 開始,我可以同時使用 R 和 Python,但我真的希望這個圖像變得苗條,所以我想從 r-base 開始。 請注意,USER root 也沒有解決這些問題。

這真的很奇怪,請參閱此鏈接

服務器 deb.debian.org 本身沒有包,但名稱在 DNS 中有 SRV 記錄,可以讓 apt 伸展並稍后找到位置。

也許您的本地網絡有些特殊,例如:

如果您直接訪問 deb.debian.org 后面的服務器,無論是因為您使用了較舊的 apt,還是因為您使用了不支持 SRV 記錄的 HTTP 代理,您的請求將被 HTTP 重定向到 CDN 實例之一。 如果你想避免重定向,你可以直接選擇一個實例。

因此,建議在您的Dockerfile添加 apt 的直接來源,如下所示:

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

如果您有代理,請同時在Dockerfile添加類似ENV http_proxy "http://your_proxy"Dockerfile ,希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM