r - Docker in R 和/或 Packrat for Reproducible Science

标签 r docker reproducible-research packrat

我不完全确定 Docker 是否足以用于 R 开发,或者我应该与 Packrat 结合使用。我读过几篇文章说 docker 就足够了。唯一支持这种说法的地方是这个 post .但是,由于 git2r 安装中的错误,我无法构建该示例。

我的总体目标是完全控制我使用的包版本,因此即使包稍后升级,我的分析仍然有效。

最佳答案

两者都需要。认为 docker 镜像只是源代码的最终产品,包括 Dockerfile 和用于构建最终镜像的每条数据。

您应该固定 docker(避免 FROM blah:latest)基础镜像,以确保底层库和工具始终相同。不要使用基础镜像,例如 debian/testing,它可能会在每次运行 apt-get install 时发生变化。

如果您在需要重建图像时不使用 packrat,您可能会从一些不再工作的库中获得一段新代码,例如,考虑一个已弃用的函数可能用过。

当然还有对您自己的代码进行版本控制,至少对其进行标记,以便能够轻松回到过去并再次开始新的构建。

这是您可以做的最低限度,因为 Dockerhub 或 CRAN 存储库损坏之类的事情仍然可能发生。在私有(private) docker registry 中保存版本化的 docker 镜像只是最后一步。

关于r - Docker in R 和/或 Packrat for Reproducible Science,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965895/

相关文章:

r - 基于多个条件创建输出

python - django.db.utils.OperationalError : (2005, "Unknown MySQL server host ' db'(-2)")

docker - 我需要私有(private) docker 注册表吗?

python - 在 Spyder 控制台中记录输入和输出

python - 在keras中使用conv2D层时,在tf.random.set_seed中设置种子是否还会设置glorot_uniform kernel_initializer使用的种子吗?

java - 评估 R 中从 Java 调用的表达式。内存不足错误 : Java Heap

python - 如何将 rdat/rdata xts 文件转换为 python pandas 原生时间序列文件?

r - 为每个因素组添加单独的 vlines 到 ggplot(可变重要性随机森林的点图)

docker - Docker Compose将一项服务附加到stdin和stdout

azure - 简单的 TensorFlow 计算无法在不同系统(macOS、Colab、Azure)上重现