运行容器时找不到在Dockerfile中安装的R软件包

时间:2020-02-17 23:21:37

标签: python r docker dockerfile

我正在尝试在Python Docker映像中安装几个R软件包。我有个小Dockerfile

# Python 3.7.5
FROM python:3.7.5
ENV PYTHONUNBUFFERED 1

# Install R 3.6
RUN echo 'deb http://cran.rstudio.com/bin/linux/debian buster-cran35/' >> /etc/apt/sources.list
RUN apt install dirmngr
RUN apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'
RUN apt update
RUN apt install -y r-base
 
# Install R dependencies
RUN R -e "install.packages('BiocManager', dependencies=TRUE, repos='http://cran.rstudio.com/')"

它不会引发任何错误。但是当我运行docker container exec -it <my container> bash并执行以下操作时:

Rscript -e 'installed.packages()' | grep BiocManager

没有任何结果。我不知道这是否适用,但是在构建过程中会抛出:

已下载的源包位于

'/ tmp / Rtmp7jBLWQ / downloaded_pa​​ckages'

也许是在临时文件夹中安装软件包的问题。有没有什么方法可以在不基于R-base映像创建映像并使用install2.r的情况下安装R软件包?

1 个答案:

答案 0 :(得分:1)

真可惜...我有一个带build: .子句的docker-compose,却忘了运行docker-compose build。这就是为什么更改不适用的原因。

但是,我使用r-base image以一种更简单的方式安装了附属项。我最后的Dockerfile是:

FROM r-base:3.6.2

# Install R dependencies
RUN install2.r --error BiocManager

# Install Python 3.7
RUN apt install -y python3.7 python3-pip