gpt4 book ai didi

r - 使用 R 和 SQL 服务器驱动程序设置 docker 镜像

转载 作者:行者123 更新时间:2023-12-01 11:15:07 25 4
gpt4 key购买 nike

这可能是一个未明确说明的问题,但由于我花了近两天的时间试图让它发挥作用,我想我可以尝试一下:

我正在尝试设置一个可以通过 R 与 SQL Server db 通信的 docker 镜像(使用 RODBC 或 odbc)

我一直遇到的问题似乎是我在建立连接时无法安装(或定位)必要的 SQL 服务器驱动程序,运行时:

 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

最佳答案

在您的 Dockerfile您正在为 PostgrSQL 而不是为 MS SQL 服务器安装 ODBC 驱动程序。在需要 MS SQL 的 docker 镜像中,我使用了 Microsoft 的驱动程序:

FROM rocker/r-ver:3.5.1

RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
apt-transport-https \
curl \
gnupg \
unixodbc-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-get update \
&& ACCEPT_EULA=Y apt-get install --yes --no-install-recommends msodbcsql17 \
&& install2.r odbc \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/*

在 R 脚本中,我然后使用
con <- odbc::dbConnect(odbc::odbc(),
Driver = "ODBC Driver 17 for SQL Server",
Server = Sys.getenv("SERVER"),
Database = Sys.getenv("DB"),
UID = Sys.getenv("USER"),
PWD = Sys.getenv("PWD"))

关于r - 使用 R 和 SQL 服务器驱动程序设置 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52954095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com