如何在PHP-Apache Docker容器中安装高版本R(如4.2.0)
在php:8.1.1-apache容器中安装高版本R(4.2.0)
默认Debian源中的R版本滞后,要安装4.2.0版本,需添加CRAN官方软件源来获取更新版本,具体修改方式如下:
调整Dockerfile的R安装逻辑
替换原有的R安装相关指令,加入CRAN源配置步骤:
FROM php:8.1.1-apache RUN docker-php-ext-install mysqli pdo pdo_mysql # 配置CRAN源并安装指定版本R RUN apt-get update && \ apt-get install -y --no-install-recommends \ gnupg2 \ ca-certificates \ curl \ nodejs && \ # 导入CRAN的GPG验证密钥 curl -fsSL https://cloud.r-project.org/bin/linux/debian/marutter_pubkey.asc | gpg --dearmor -o /usr/share/keyrings/cran-archive-keyring.gpg && \ # 添加适配Debian Bullseye的CRAN源 echo "deb [signed-by=/usr/share/keyrings/cran-archive-keyring.gpg] https://cloud.r-project.org/bin/linux/debian bullseye-cran40/" > /etc/apt/sources.list.d/cran.list && \ # 更新源后安装指定版本R apt-get update && \ apt-get install -y --no-install-recommends \ r-base=4.2.0-1.bullseye && \ # 清理apt缓存压缩镜像体积 apt-get clean && \ rm -rf /var/lib/apt/lists/* ... other cmds ...
关键细节说明
- 先安装
gnupg2、curl等工具用于源的密钥验证和配置 - 选择
bullseye-cran40/源,该源专门为Debian Bullseye提供4.0及以上版本的R - 明确指定
r-base=4.2.0-1.bullseye确保安装目标版本,若需更新版本,可替换为对应版本号 - 添加
--no-install-recommends和缓存清理步骤,避免镜像体积冗余
如果安装时出现依赖缺失,可按需在apt-get install列表中加入R编译所需基础依赖,比如build-essential、libcurl4-openssl-dev、libssl-dev等。
内容的提问来源于stack exchange,提问作者Lavin J Leung
相关产品推荐
相关产品推荐

