在已导入包的码头容器(码头运行)内使用R

xoefb8l8  于 2022-10-23  发布在  Docker
关注(0)|答案(1)|浏览(142)

我在停靠容器中使用R来运行一些R脚本。
使用docker run,除了总是需要相当长时间的包导入之外,它工作得很好并且速度很快。
特别是导入sf包所需的时间是实际R脚本运行时间的10倍:
链接到GEOS 3.8.0、GDAL 3.0.4、项目6.3.1;SF_USE_S2()为真
有没有可能加快包的导入,比如导入docker Build过程中的文件?

inkz8wg9

inkz8wg91#

可以,您可以在构建时安装{sf}来构建您的停靠镜像。
请注意,这可能有些棘手,因为{sf}在系统级别有依赖关系(例如GDAL、GEOS、Proj),而这些依赖关系又有它们的依赖关系。
有关安装特定版本的{sf}依赖项的Dockerfile的示例,请考虑以下示例以获得灵感:https://github.com/jlacko/RCzechia/blob/master/data-raw/Dockerfile
它的作用是:
1.使用R Studio拉取R 4.1.0版本Rocker镜像
1.从源代码编译三大依赖项,因为我的用例需要特定的版本;这在您的用例中可能有些夸张,而且会永远持续下去--您可能希望在下一步中用编译后的二进制文件的安装来替换这一步
1.安装R包所需的系统级(Ubuntu)依赖二进制文件
1.从Time Version cran Mirror安装几个R包-请注意,在所有公司中,微软是如何帮助提供cran的每日快照的。这对重复性非常有帮助。
您的用例可能需要不同的R包组合,但我希望这会给您提供前进的灵感。

相关问题