Skip to content

Commit f339c3f

Browse files
committed
Added support for MS SQL server driver for PHP 7.0 - requested changes:
- removed cd / && \ - added INSTALL_MSSQL to docker-compose.yml and env-example
1 parent 74ba0ef commit f339c3f

3 files changed

Lines changed: 83 additions & 5 deletions

File tree

docker-compose.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ services:
1919
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
2020
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
2121
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
22+
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
2223
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
2324
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
2425
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
@@ -59,6 +60,7 @@ services:
5960
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
6061
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
6162
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
63+
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
6264
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
6365
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
6466
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}

env-example

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ PHP_INTERPRETER=php-fpm
3232
WORKSPACE_INSTALL_XDEBUG=false
3333
WORKSPACE_INSTALL_SOAP=false
3434
WORKSPACE_INSTALL_MONGO=false
35+
WORKSPACE_INSTALL_MSSQL=false
3536
WORKSPACE_INSTALL_NODE=false
3637
WORKSPACE_INSTALL_YARN=false
3738
WORKSPACE_INSTALL_DRUSH=false
@@ -54,6 +55,7 @@ WORKSPACE_SSH_PORT=2222
5455

5556
PHP_FPM_INSTALL_XDEBUG=false
5657
PHP_FPM_INSTALL_MONGO=false
58+
PHP_FPM_INSTALL_MSSQL=false
5759
PHP_FPM_INSTALL_SOAP=false
5860
PHP_FPM_INSTALL_ZIP_ARCHIVE=false
5961
PHP_FPM_INSTALL_BCMATH=false
@@ -239,4 +241,3 @@ PHP_IDE_CONFIG=serverName=laradock
239241
# Fix for windows users to make sure the application path works.
240242

241243
COMPOSE_CONVERT_WINDOWS_PATHS=1
242-

php-fpm/Dockerfile-70

Lines changed: 79 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,8 @@ RUN if [ ${MSSQL} = true ]; then \
273273
# extensions:
274274
#####################################
275275

276-
pecl install sqlsrv-4.0.6 && \
277-
pecl install pdo_sqlsrv-4.0.6 && \
276+
pecl install sqlsrv-4.1.7preview && \
277+
pecl install pdo_sqlsrv-4.1.7preview && \
278278

279279
#####################################
280280
# Set locales for the container
@@ -292,8 +292,8 @@ RUN if [ ${MSSQL} = true ]; then \
292292
ARG INSTALL_INTL=false
293293
RUN if [ ${INSTALL_INTL} = true ]; then \
294294
# Install intl and requirements
295-
apt-get -y update \
296-
&& apt-get install -y zlib1g-dev libicu-dev g++ && \
295+
apt-get -y update && \
296+
apt-get install -y zlib1g-dev libicu-dev g++ && \
297297
docker-php-ext-configure intl && \
298298
docker-php-ext-install intl \
299299
;fi
@@ -312,6 +312,81 @@ RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
312312
ghostscript \
313313
;fi
314314

315+
#####################################
316+
# SQL SERVER:
317+
#####################################
318+
ARG INSTALL_MSSQL=false
319+
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
320+
321+
RUN if [ ${INSTALL_MSSQL} = true ]; then \
322+
#####################################
323+
# Install Depenencies:
324+
#####################################
325+
apt-get update && \
326+
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
327+
328+
#####################################
329+
# The following steps were taken from
330+
# Microsoft's github account:
331+
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
332+
#####################################
333+
334+
# Add PHP 7 repository
335+
# for Debian jessie
336+
# And System upgrade
337+
echo "deb http://packages.dotdeb.org jessie all" \
338+
| tee /etc/apt/sources.list.d/dotdeb.list \
339+
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \
340+
| apt-key add - \
341+
&& apt-get update \
342+
&& apt-get upgrade -qq && \
343+
344+
# Install UnixODBC
345+
# Compile odbc_config as it is not part of unixodbc package
346+
apt-get update && \
347+
apt-get install -y whiptail \
348+
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \
349+
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \
350+
&& cd unixodbc-*/ \
351+
&& ./configure && make && make install \
352+
&& cp -v ./exe/odbc_config /usr/local/bin/ && \
353+
354+
# Fake uname for install.sh
355+
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
356+
| tee /usr/local/bin/uname \
357+
&& chmod +x /usr/local/bin/uname && \
358+
359+
# Microsoft ODBC Driver 13 for Linux
360+
# Note: There's a copy of this tar on my hubiC
361+
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
362+
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
363+
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
364+
&& cd msodbcsql-*/ \
365+
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
366+
&& ./install.sh install --accept-license \
367+
&& ls -l /opt/microsoft/msodbcsql/ \
368+
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
369+
370+
371+
#####################################
372+
# Install sqlsrv y pdo_sqlsrv
373+
# extensions:
374+
#####################################
375+
376+
pecl install sqlsrv-4.1.7 && \
377+
pecl install pdo_sqlsrv-4.1.7 && \
378+
379+
#####################################
380+
# Set locales for the container
381+
#####################################
382+
383+
apt-get install -y locales \
384+
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
385+
&& locale-gen \
386+
&& echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini \
387+
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
388+
;fi
389+
315390
#
316391
#--------------------------------------------------------------------------
317392
# Final Touch

0 commit comments

Comments
 (0)