Установите sqlserv в Docker Наносервер

Для реализации нашего проекта мы использовали Docker и общедоступный репозиторий nanoserver / wamp в Dockerhub. Мы смогли использовать систему, поскольку мы используем PHP и внешний сервер MySQL для нашей базы данных.

Теперь наша база данных переходит на MSSQL и для доступа к MSSQL нам нужно иметь файлы sqlsrv .dll в папке C:\php\ext

Но одним предварительным условием для sqlsrv является драйвер MSODBC, и я не могу найти способ загрузить MSI-файл внутри наносервера из-за его ограничений.

Есть ли способ просто скопировать и вставить файлы ODBC в наносервер, чтобы мы могли использовать 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, и я не знаю, как его настроить. В любом случае, если он работает только с этим репо, можете ли вы указать мне, как установить Apache-PHP в microsoft / windowsservercore?

1 ответ

Оказывается, на самом деле нет способа установить sqlsrv в nanoserver, поскольку для этого требуется установить зависимости с типом файла.msi.

Я просто поделюсь, как настроить установку apache-php в microsoft/windowsservercore

Вот мой докер-файл:

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

Вот содержимое моего сервиса.bat:

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

После установки установки Apache-PHP я смог установить msodbcsql.msi и вставить sqlsrv.dll и pdo_sqlsrv.dll для PHP, и это обнаружилось в phpinfo();

Другие вопросы по тегам