[英]Error installing RMySQL to run in Docker on Mac OS X
I am trying to run MySQL in an R script running inside a Docker (actually Rocker) container, but am getting an error on the “install_packages(…” step. The only solution I found that was somewhat similar was specific to running RedHat Linux (我正在运行 Mac OS X 10.15),解决方案包括指向几个我没有的目录。在 RStudio 下或从命令行运行,RMySQL 加载没有问题。
Dockerfile:
FROM rocker/r-ver:latest
RUN mkdir /home/analysis
COPY install_packages.R /home/analysis/install_packages.R
COPY script_basic.R /home/analysis/script_basic.R
RUN Rscript /home/analysis/install_packages.R
CMD Rscript /home/analysis/script_basic.R
R 文件:
script_basic.R
library( RMySQL )
install_packages.R
install_packages(“RMySQL”)
命令和响应:
$ docker build -t myapp .
…
Successfully tagged myapp:latest
$ docker run -it --rm myapp
Loading required package: DBI
Error: package or namespace load failed for ‘RMySQL’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/lib/R/site-library/RMySQL/libs/RMySQL.so':
libmysqlclient.so.21: cannot open shared object file: No such file or directory
Execution halted
$
我相信rocker/r-dev
不包含运行它所需的库。 未经测试,但尝试这样的事情。
Dockerfile
FROM rocker/r-ver:latest
RUN mkdir /home/analysis
RUN apt-get update \
&& apt-get install -y --no-install-recommends libmariadbclient-dev
COPY install_packages.R /home/analysis/install_packages.R
COPY script_basic.R /home/analysis/script_basic.R
RUN Rscript /home/analysis/install_packages.R
CMD Rscript /home/analysis/script_basic.R
您可以在https://cran.r-project.org/web/packages/RMySQL/index.html上找到对某些库的需求,如
SystemRequirements: libmariadb-client-dev | libmariadb-client-lgpl-dev | libmysqlclient-dev (deb), mariadb-devel (rpm), mariadb | mysql-connector-c (brew), mysql56_dev (csw)
以及如何在RMySQL
的 github README.md
的安装部分中安装它们的说明。
(CRAN 页面引用libmysqlclient-dev
,但 github 页面建议“mariadb 实现要好得多” 。我不知道该声明的前提,只是解释为什么我建议一个而 CRAN 列出另一个。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.