我正在尝试在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_packages'
也许是在临时文件夹中安装软件包的问题。有没有什么方法可以在不基于R-base映像创建映像并使用install2.r
的情况下安装R软件包?
答案 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