- 
                Notifications
    You must be signed in to change notification settings 
- Fork 379
Install and configuration
        Hadis Fard edited this page May 18, 2017 
        ·
        34 revisions
      
    This section is created and maintained by contributors, and is not officially tested.
This uses Microsoft repos for msodbcsql to simplify the installation process.
FROM php:fpm
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
RUN apt-get update && 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
# Install Dependencies
RUN 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
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
RUN pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
    && docker-php-ext-enable pdo_sqlsrv sqlsrv# Prove that the Debian how-to works, please choose one of the 3 installation methods
# and optionally save the resulting extension: sudo cp /usr/lib/php/20151012/pdo_sqlsrv.so /opt/results/
FROM szepeviktor/jessie-build
ENV LC_ALL C
ENV DEBIAN_FRONTEND noninteractive
USER debian
WORKDIR /home/debian
VOLUME ["/opt/results"]
# Add PHP 7 repository
# for Debian jessie
# And System upgrade
RUN echo "deb http://packages.dotdeb.org jessie all" \
    | sudo tee /etc/apt/sources.list.d/dotdeb.list \
    && wget -qO- https://www.dotdeb.org/dotdeb.gpg \
    | sudo apt-key add - \
    && sudo apt-get update \
    && sudo apt-get upgrade -qq
# Install UnixODBC
# Compile odbc_config as it is not part of unixodbc package
RUN sudo 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-*/ \
    && dpkg-buildpackage -uc -us -B \
    && sudo cp -v ./exe/odbc_config /usr/local/bin/
# Fake uname for install.sh
RUN printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
    | sudo tee /usr/local/bin/uname \
    && sudo chmod +x /usr/local/bin/uname
# Microsoft ODBC Driver 13 for Linux
# Note: There's a copy of this tar on my hubiC
RUN 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 \
    && sudo ./install.sh install --accept-license \
    && ls -l /opt/microsoft/msodbcsql/ \
    && odbcinst -q -d -n "ODBC Driver 13 for SQL Server"
# (1) Install PDO driver from pecl
RUN sudo apt-get install -y unixodbc-dev php7.0-dev php-pear \
    && sudo pecl channel-update pecl.php.net \
    && sudo pecl install pdo_sqlsrv \
    && printf "; priority=20\nextension=pdo_sqlsrv.so" \
    | sudo tee /etc/php/7.0/mods-available/pdo_sqlsrv.ini \
    && sudo phpenmod pdo_sqlsrv \
    && php --rextinfo pdo_sqlsrv \
    && sudo phpdismod pdo_sqlsrv \
    && sudo pecl uninstall pdo_sqlsrv
# (2) Or Build PDO driver with phpize
RUN sudo apt-get install -y unixodbc-dev php7.0-dev \
    && wget -nv "https://github.com/Microsoft/msphpsql/archive/PHP-7.0-Linux.tar.gz" \
    && tar -xf PHP-7.0-Linux.tar.gz \
    && cd msphpsql-PHP-7.0-Linux/source/ \
    && cp -r shared/ pdo_sqlsrv/ \
    && cd pdo_sqlsrv/ \
    && phpize \
    && ./configure CXXFLAGS=-std=c++11 \
    && make \
    && sudo make "INSTALL=$(pwd)/build/shtool install -c --mode=0644" install \
    && printf "; priority=20\nextension=pdo_sqlsrv.so" \
    | sudo tee /etc/php/7.0/mods-available/pdo_sqlsrv.ini \
    && sudo phpenmod pdo_sqlsrv \
    && php --rextinfo pdo_sqlsrv \
    && sudo phpdismod pdo_sqlsrv \
    && sudo rm -f /usr/lib/php/20151012/pdo_sqlsrv.so
# (3) Or Download precompiled pdo_sqlsrv extension binaries
RUN sudo apt-get install -y php7.0-cli \
    &&wget -nv "https://github.com/Microsoft/msphpsql/releases/download/4.0.8-Linux/Ubuntu15.tar" \
    && tar -xf Ubuntu15.tar \
    && sudo cp -v ./Ubuntu15/php_pdo_sqlsrv_7_nts.so /usr/lib/php/20151012/pdo_sqlsrv.so \
    && printf "; priority=20\nextension=pdo_sqlsrv.so" \
    | sudo tee /etc/php/7.0/mods-available/pdo_sqlsrv.ini \
    && sudo phpenmod pdo_sqlsrv \
    && php --rextinfo pdo_sqlsrv \
    && sudo phpdismod pdo_sqlsrv \
    && sudo rm -f /usr/lib/php/20151012/pdo_sqlsrv.soThis page is originally created by @rpander93
    FROM php:7.1-apache
    
    RUN 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-*/ \
        && dpkg-buildpackage -uc -us -B \
        && cp -v ./exe/odbc_config /usr/local/bin/
    
    RUN printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
        | tee /usr/local/bin/uname \
        && chmod +x /usr/local/bin/uname
    
    RUN apt-get install -y wget \
        && 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"
    
    RUN apt-get install -y apt-transport-https lsb-release ca-certificates \
        && wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg \
        && echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list \
        && apt-get update
        
    RUN apt-get install -y unixodbc-dev php7.1-dev php-pear \
        && pecl channel-update pecl.php.net \
        && pecl install pdo_sqlsrv-4.1.6.1 \
        && printf "; priority=20\nextension=/usr/lib/php/20160303/pdo_sqlsrv.so" | tee /etc/php/7.1/mods-available/pdo_sqlsrv.ini \
        && echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/pdo_sqlsrv.ini