Heroku, R and Gdal



所以我的应用程序突然停止工作,经过调查,问题似乎是因为在部署应用程序时传单没有正确安装,这是因为Heroku基本上不支持gdal。我在构建应用程序时遇到的错误是checking for gdal-config... no

我去了R构建包的GitHub(https://github.com/virtualstaticvoid/heroku-buildpack-r)它说我需要将应用程序容器化,所以我照做了。

我做了下面链接中所说的(https://github.com/virtualstaticvoid/heroku-docker-r)在我的dockerfile中,我添加了一些命令,所以我的docker文件看起来像这样:

FROM virtualstaticvoid/heroku-docker-r:shiny
ENV PORT=8080
RUN apt-get update &&
apt-get install -y libcurl4-openssl-dev libssl-dev binutils libproj-dev proj-bin libgdal-dev gdal-bin
CMD ["/usr/bin/R", "--no-save", "--gui-none", "-f", "/app/run.R"]

遗憾的是,我仍然会犯同样的错误。此外,我无法下载openssl模块,也不知道如何实现/尝试我在网上找到的几个答案:

Using PKG_CFLAGS=
--------------------------- [ANTICONF] --------------------------------
Configuration failed because openssl was not found. Try installing:
* deb: libssl-dev (Debian, Ubuntu, etc)
* rpm: openssl-devel (Fedora, CentOS, RHEL)
* csw: libssl_dev (Solaris)
* brew: openssl@1.1 (Mac OSX)
If openssl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a openssl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
-------------------------- [ERROR MESSAGE] ---------------------------
tools/version.c:1:10: fatal error: openssl/opensslv.h: No such file or directory
1 | #include <openssl/opensslv.h>
|          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

我需要帮助。

编辑:

我认为问题来自于这样一个事实,即我在从docker构建映像后安装库(此映像在没有安装libgdal、gdal-config…包的情况下安装R(,因此这些库需要在from语句之前安装,或者我需要构建自己的映像(不知道如何(,或者用户需要更新他的映像,使其支持gdal和openssl。

正如您所猜测的,问题是在安装rgdalR包之前没有安装libgdal-dev依赖项。

CCD_ 4对此作出了规定;Aptfile";指定要安装的依赖项(根据文档中的"具有附加依赖项的应用程序"(。

我创建了一个示例项目,heroku-docker-r-rgdal-example,展示如何用所需的文件等构建项目。

最新更新