在docker nanoserver中安装sqlserv

时间:2018-12-02 14:54:38

标签: apache docker odbc sqlsrv server-core

我们一直在使用Docker和Dockerhub中的公共存储库 nanoserver / wamp 来实现我们的项目。我们已经能够使用该系统,就像我们在数据库中使用PHP和外部MySQL服务器一样。

现在,我们的数据库正在转移到MSSQL,为了访问MSSQL,我们需要在C:\ php \ ext文件夹中拥有sqlsrv .dll文件

但是sqlsrv的一个先决条件是MSODBC驱动程序,由于其限制,我找不到在nanoserver内下载.msi文件的方法。

有没有一种方法可以将ODBC文件复制并粘贴到nanoserver中,以便我们可以将sqlsrv用于我们的php项目中?还是有什么方法可以连接到MSSQL数据库?

我已经尝试过了,但是仍然无法使用:

COPY msodbcsql13.dll C:/Windows/System32/
COPY msodbcsql11.dll C:/Windows/System32/

COPY msodbcdiag13.dll C:/Windows/System32/
COPY msodbcdiag11.dll C:/Windows/System32/

COPY msodbcsqlr13.rll C:/Windows/System32/1033/
COPY msodbcsqlr11.rll C:/Windows/System32/1033/

文件的依据来自https://docs.microsoft.com/en-us/sql/connect/odbc/windows/system-requirements-installation-and-driver-files?view=sql-server-2017

我没有尝试过公共存储库 microsoft / windowsservercore ,因为它提供了IIS-PHP,我们需要一个 Apache-PHP 配置而且我不知道如何在那里设置它。碰巧,如果它仅与此仓库配合使用,您能否指出我如何在 microsoft / windowsservercore 中安装Apache-PHP?

1 个答案:

答案 0 :(得分:0)

结果是,实际上没有办法将sqlsrv安装到nanoserver中,因为它需要使用.msi文件类型安装依赖项。

我将仅分享如何将apache-php安装程序设置为 microsoft / windowsservercore

  

这是我的 dockerfile

FROM microsoft/windowsservercore

COPY setup c:/apache

ADD https://aka.ms/vs/15/release/VC_redist.x86.exe /apache/vc_redist.x86.exe
ADD https://aka.ms/vs/15/release/VC_redist.x64.exe /apache/vc_redist.x64.exe
RUN C:\apache\vc_redist.x86.exe /quiet /install
RUN C:\apache\vc_redist.x64.exe /quiet /install

COPY Apache24 c:/Apache24

COPY php c:/php

RUN powershell.exe -command \
    cmd.exe /c c:/apache/service.bat; \
    sc.exe config apache2.4 obj=LocalSystem; \
    remove-item c:/apache -Recurse
  

这是我的service.bat的内容:

cd\
cd Apache24\bin
httpd.exe -k install
  

在安装Apache-PHP安装程序之后,我能够安装msodbcsql.msi并为PHP插入sqlsrv.dll和pdo_sqlsrv.dll,它显示在phpinfo();