我在停靠容器中使用R来运行一些R脚本。使用docker run,除了总是需要相当长时间的包导入之外,它工作得很好并且速度很快。特别是导入sf包所需的时间是实际R脚本运行时间的10倍:链接到GEOS 3.8.0、GDAL 3.0.4、项目6.3.1;SF_USE_S2()为真有没有可能加快包的导入,比如导入docker Build过程中的文件?
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包组合,但我希望这会给您提供前进的灵感。
{sf}
1条答案
按热度按时间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包组合,但我希望这会给您提供前进的灵感。