这可能是一个缺乏具体细节的问题,但由于我花了将近两天的时间尝试让它工作,我想我可以试一试:
我正在尝试设置一个Docker镜像,通过R(使用RODBC或odbc)与SQL Server数据库通信。
我遇到的问题似乎是在建立连接时未能安装(或定位)必要的SQL Server驱动程序,当运行以下命令时:
con <- dbConnect(odbc(),
Driver = "SQL Server",
Server = "xxxx",
Database = "xxxx",
UID = "xxx",
PWD = “xxxx")
有人设置过类似的Docker镜像吗?
编辑:
这是我的当前dockerfile(我尝试了多种方法,但这个可以复现错误消息)
FROM rocker/r-ver:3.5.0
RUN apt-get -qq update \
&& apt-get -qq dist-upgrade -y \
&& apt-get -qq install git unixodbc unixodbc-dev postgresql-9.5 odbc-postgresql libssl-dev sudo -y
COPY . /usr/local/src/myscripts
WORKDIR /usr/local/src/myscripts
RUN R -e 'install.packages("odbc")'
RUN R -e 'install.packages("plumber")'
EXPOSE 8000
CMD ["Rscript", "plumber.R"]
运行容器并执行ODBC命令的结果如下:
> library('odbc')
> con <- dbConnect(odbc(),
+ Driver = "SQL Server",
+ Server = "xx",
+ Database = "xx",
+ UID = "xx",
+ PWD = "xx")
Error: nanodbc/nanodbc.cpp:950: 01000: [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found