r - R在docker容器中没有调用包
问题描述
我有一个 docker 映像,我使用以下几行安装了几个软件包:
FROM rocker/verse:4.0.3
... (some other installation details)
RUN install2.r --error \
glmnet \
ineq
...
但是,在从该映像运行容器时,我偶尔会收到错误消息,其中 R 似乎找不到该包:
Error in library(ineq) : there is no package called 'ineq'
如果我创建容器的新版本并手动打开 R 并运行它,我将永远无法重现此错误。有谁知道我该如何解决这个问题(或者我应该寻找什么来重现这个问题)?
解决方案
击中相同的“奇怪”行为..
我的解决方法是(我知道它不优雅)使用 pacman 而不是库行。如果 pacman 找不到它只是安装它的库,它会做什么。这显然是粗鲁和反容器模式,但在某些时候我们需要继续前进:-/.. 这里的一个很大缺点是,如果容器丢失所有包并开始重新安装,容器启动时间可能会很长他们
if(!require("pacman")) install.packages("pacman")
pacman::p_load("glmnet","ineq")
推荐阅读
- javascript - firebase + react,setState 似乎不会触发重新渲染
- java - 如何解决 maven EnforcedBytecodeVersion 失败?
- sql - MS Access SQL 运行总数
- python - 当主窗口移出屏幕时,小部件消失
- amazon-web-services - AWS EB + nginx:更新 access.log 格式以混淆敏感的获取请求参数
- python-3.x - 与协程的两种方式通信(asyncio 中的状态机)
- javascript - Ajax 在页面中发回后,Javascript 控制台命令不起作用
- ios - 滚动视图与集合视图。获取“可见图像”
- scala - 具有数组和映射数据类型的 Spark Scala 案例类
- javascript - Chrome 中的文件和目录条目 API 是否损坏?