我一直在尝试使用摇摆器/发光映像作为Shiny Server来启动生产服务器。通过以下命令安装SQL Server驱动程序后(在创建docker时将docker image命名为“ shiny”之后),出现“找不到文件”错误:
docker exec -it shiny /bin/bash
apt install curl default-jre default-jdk libxml2-dev libssl-dev gnupg2
libgit2-dev libbz2-dev libpcre3-dev liblzma-dev zlib1g-dev apt-
transport-https libmariadb-dev unixODBC* texlive texlive-xetex
apt install libcurl4-openssl-dev
apt install libcurl4-gnutls-dev
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/9/prod.list >
/etc/apt/sources.list.d/mssql-release.list
apt update
ACCEPT_EULA=Y apt install msodbcsql17
错误消息:
odbcDriverConnect(con.text)中的警告:
[RODBC]错误:状态01000,代码0,消息[unixODBC] [驱动程序管理器]无法打开lib'/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1':找不到文件
odbcDriverConnect(con.text)中的警告:ODBC连接失败
警告:sqlQuery错误:第一个参数不是打开的RODBC通道
我可以确认文件名(到SQL Server驱动程序)是正确的。在docker内部,我已完成su-Shiny以验证光泽用户可以访问该文件。我已经使用目录树的所有层对文件进行了处理(使用777 -R),以验证它不是权限问题。而且在它出现之前,是的,我需要docker内部的所有那些软件包才能运行该应用程序。
我还尝试了以下解决方案:Shiny Server cannot use RODBC to connect to DB2 but RStudio can in a Docker Container
我无法取得不同的结果。我觉得这从根本上来说是一个文件访问问题,与docker的运行方式有关,但是我还没有找到任何好的文档来描述此问题的可能解决方法。我有另一台服务器正在运行该应用程序,因此我知道这不是server.R文件的问题。我已经为此努力了几天,所以任何指导将不胜感激。