From 43545cefd25841b064b37875a42a80d96388d3d0 Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 May 2017 09:20:00 +0800 Subject: [PATCH 1/2] fixing PHP7.1 php-fpm mssql extension build failed --- php-fpm/Dockerfile-71 | 74 +++++++------------------------------------ 1 file changed, 12 insertions(+), 62 deletions(-) diff --git a/php-fpm/Dockerfile-71 b/php-fpm/Dockerfile-71 index c8b827c..3a71dc2 100644 --- a/php-fpm/Dockerfile-71 +++ b/php-fpm/Dockerfile-71 @@ -267,76 +267,26 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \ ##################################### # SQL SERVER: ##################################### + ARG INSTALL_MSSQL=false ENV INSTALL_MSSQL ${INSTALL_MSSQL} - RUN if [ ${INSTALL_MSSQL} = true ]; then \ ##################################### - # Install Depenencies: + # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image ##################################### - apt-get update -yqq && \ - apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \ - - ##################################### - # The following steps were taken from - # Microsoft's github account: - # https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways - ##################################### - - # Add PHP 7 repository - # for Debian jessie - # And System upgrade - echo "deb http://packages.dotdeb.org jessie all" \ - | tee /etc/apt/sources.list.d/dotdeb.list \ - && wget -qO- https://www.dotdeb.org/dotdeb.gpg \ - | apt-key add - \ + # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux + apt-get update -yqq && apt-get install -y apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update -yqq \ - && apt-get upgrade -qq && \ - # Install UnixODBC - # Compile odbc_config as it is not part of unixodbc package - apt-get update -yqq && \ - apt-get install -y whiptail \ - unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \ - && dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \ - && cd unixodbc-*/ \ - && ./configure && make && make install \ - && cp -v ./exe/odbc_config /usr/local/bin/ && \ + # Install Dependencies + && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \ + && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen \ - # Fake uname for install.sh - printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \ - | tee /usr/local/bin/uname \ - && chmod +x /usr/local/bin/uname && \ - - # Microsoft ODBC Driver 13 for Linux - # Note: There's a copy of this tar on my hubiC - wget -nv -O msodbcsql-13.0.0.0.tar.gz \ - "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" \ - && tar -xf msodbcsql-13.0.0.0.tar.gz \ - && cd msodbcsql-*/ \ - && ldd lib64/libmsodbcsql-13.0.so.0.0 \ - && ./install.sh install --accept-license \ - && ls -l /opt/microsoft/msodbcsql/ \ - && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \ - - - ##################################### - # Install sqlsrv y pdo_sqlsrv - # extensions: - ##################################### - - pecl install sqlsrv-4.0.8 && \ - pecl install pdo_sqlsrv-4.0.8 && \ - - ##################################### - # Set locales for the container - ##################################### - - apt-get install -y locales \ - && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ - && locale-gen \ - && echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \ - && echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \ + # Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version. + && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \ + && docker-php-ext-enable pdo_sqlsrv sqlsrv \ ;fi # From 5a8df95fd359a64cdf286255b029aeef5158b61b Mon Sep 17 00:00:00 2001 From: Shao Yu Lung Date: Sat, 20 May 2017 10:35:41 +0800 Subject: [PATCH 2/2] fixing PHP7.0 php-fpm mssql extension build failed --- php-fpm/Dockerfile-70 | 76 ++++++++----------------------------------- 1 file changed, 14 insertions(+), 62 deletions(-) diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index e442b65..b14adac 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -258,76 +258,28 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \ ##################################### # SQL SERVER: ##################################### + ARG INSTALL_MSSQL=false ENV INSTALL_MSSQL ${INSTALL_MSSQL} - RUN if [ ${INSTALL_MSSQL} = true ]; then \ ##################################### - # Install Depenencies: + # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image ##################################### - apt-get update -yqq && \ - apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \ - - ##################################### - # The following steps were taken from - # Microsoft's github account: - # https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways - ##################################### - - # Add PHP 7 repository - # for Debian jessie - # And System upgrade - echo "deb http://packages.dotdeb.org jessie all" \ - | tee /etc/apt/sources.list.d/dotdeb.list \ - && wget -qO- https://www.dotdeb.org/dotdeb.gpg \ - | apt-key add - \ + # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux + apt-get update -yqq \ + && apt-get install -y apt-transport-https \ + && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \ + && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update -yqq \ - && apt-get upgrade -qq && \ - # Install UnixODBC - # Compile odbc_config as it is not part of unixodbc package - apt-get update -yqq && \ - apt-get install -y whiptail \ - unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \ - && dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \ - && cd unixodbc-*/ \ - && ./configure && make && make install \ - && cp -v ./exe/odbc_config /usr/local/bin/ && \ + # Install Dependencies + && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \ + && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ + && locale-gen \ - # Fake uname for install.sh - printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \ - | tee /usr/local/bin/uname \ - && chmod +x /usr/local/bin/uname && \ - - # Microsoft ODBC Driver 13 for Linux - # Note: There's a copy of this tar on my hubiC - wget -nv -O msodbcsql-13.0.0.0.tar.gz \ - "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" \ - && tar -xf msodbcsql-13.0.0.0.tar.gz \ - && cd msodbcsql-*/ \ - && ldd lib64/libmsodbcsql-13.0.so.0.0 \ - && ./install.sh install --accept-license \ - && ls -l /opt/microsoft/msodbcsql/ \ - && odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \ - - - ##################################### - # Install sqlsrv y pdo_sqlsrv - # extensions: - ##################################### - - pecl install sqlsrv-4.0.8 && \ - pecl install pdo_sqlsrv-4.0.8 && \ - - ##################################### - # Set locales for the container - ##################################### - - apt-get install -y locales \ - && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \ - && locale-gen \ - && echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \ - && echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \ + # Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version. + && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \ + && docker-php-ext-enable pdo_sqlsrv sqlsrv \ ;fi #