Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

May be docker image? #168

Open
yuriyzinchenko opened this issue Oct 6, 2016 · 20 comments
Open

May be docker image? #168

yuriyzinchenko opened this issue Oct 6, 2016 · 20 comments

Comments

@yuriyzinchenko
Copy link

Do you plan to create a docker image?

@meet-bhagdev
Copy link
Contributor

@yuriyzinchenko are you looking for a Docker image with the PHP Driver for SQL Server and its pre-requisites installed?

@yuriyzinchenko
Copy link
Author

@meet-bhagdev Yes. Or may be it's exists already?

@danielnv18
Copy link

danielnv18 commented Oct 15, 2016

@yuriyzinchenko @meet-bhagdev I created this Dockerfile. it might work.

The only problem I have is that is returning pdo_sqlsrv_db_handle_factory: Unknown exception caught. I'm using that Dockerfile with a silex application and Doctrine DBA. it looks like that I'm not the only one wit that problem #161

@yuriyzinchenko
Copy link
Author

yuriyzinchenko commented Oct 16, 2016

@danielnv18 based on your file, I created my own Dockerfile. I add few instructions to avoid pdo_sqlsrv_db_handle_factory: Unknown exception.

RUN apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen
It seems like with the encoding problem was the cause of connection failure
The docker image is available on the https://hub.docker.com/ nitra/php:php-7mssql

Full text of Dockerfile:

FROM nitra/php:php7

RUN printf "\n" | pecl install apcu
RUN docker-php-ext-enable apcu

# install the PHP extensions we need
RUN apt-get update && apt-get install -y locales unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev unixodbc-dev wget unzip \
    && rm -rf /var/lib/apt/lists/* \
    && docker-php-ext-install pdo opcache \
    && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen

# Compile odbc_config
RUN cd /usr/local/src/ && dget -ux http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \
    && cd unixodbc-2.3.1/ && apt-get update && dpkg-buildpackage -uc -d -us -B && cp ./exe/odbc_config /usr/local/bin/

## Microsoft ODBC Driver 13 for Linux
RUN cd /usr/local/src/ \
    && wget https://download.microsoft.com/download/2/E/5/2E58F097-805C-4AB8-9FC6-71288AB4409D/msodbcsql-13.0.0.0.tar.gz \
    && tar xf msodbcsql-13.0.0.0.tar.gz && cd msodbcsql-13.0.0.0/ \
    && ldd lib64/libmsodbcsql-13.0.so.0.0; echo "RET=$?" \
    && sed -i 's/$(uname -p)/"x86_64"/g' ./install.sh \
    && ./install.sh install --force --accept-license
#
RUN cd /tmp && wget https://github.com/Microsoft/msphpsql/releases/download/v4.0.5-Linux/Ubuntu15.zip \
    && unzip Ubuntu15.zip \
    && mv -v Ubuntu15/* /usr/local/lib/php/extensions/no-debug-non-zts-20151012/ \
    && rm /usr/local/lib/php/extensions/no-debug-non-zts-20151012/signature \
    && rm -rf /tmp/*

RUN echo "extension=php_sqlsrv_7_nts.so" >> /usr/local/etc/php/conf.d/sqlsvr.ini \
    && echo "extension=php_pdo_sqlsrv_7_nts.so" >> /usr/local/etc/php/conf.d/sqlsvr.ini \
    && locale-gen


CMD ["php-fpm", "-F"]

EXPOSE 9000

@danielnv18
Copy link

Thanks @yuriyzinchenko. That did the trick for that particular error.

@meet-bhagdev
Copy link
Contributor

@danielnv18 @yuriyzinchenko super cool. I will try out your docker image and let you know how it goes. If everything looks good, I will start evangelizing it.

We will also add the following to our getting started instructions.

RUN apt-get install -y locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
&& locale-gen

@vanomak
Copy link

vanomak commented Dec 6, 2016

msodbcsql-13.0.0.0.tar.gz is not available anymore at the URL provided.
Here is the current wget with correct URL

wget "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" -O msodbcsql-13.0.0.0.tar.gz

@LuisBosquez
Copy link

@yuriyzinchenko @vanomak, @meet-bhagdev and I have created a Docker image with the latest PHP drivers. Check it out here mssql-docker/php-mssql. This is also available on DockerHub under lbosqmsft/php-mssql. Let us know what you think!

@yuriyzinchenko
Copy link
Author

Great! What about php 7.1? And may be use official php image as the base?

@francarmona
Copy link

Here you have another Docker image I have created that includes mssql driver. Hope it will be helpful for you francarmona/docker-ubuntu16-apache2-php7-mssql_client. DockerHub: francarmona/docker-ubuntu16-apache2-php7-mssql_client

@sirio3mil
Copy link

I make this one under centos 7 and php 7.1.1. It also include soap for Exchange Webservices and ldap for autentifications. This is also available on DockerHub under reynier3mil/centos-php-fpm-msphpsql.

@meet-bhagdev
Copy link
Contributor

@sirio3mil @francarmona @yuriyzinchenko @vanomak @danielnv18: We are working on a Docker image for developers looking to use PHP Drivers for SQL Server in a Docker setup and publish it on DockerHub here: https://hub.docker.com/r/microsoft/. We would like to get your feedback on what we should name it. Can you take this survey and let us know what you think? https://www.surveymonkey.com/r/ZW3G6LV

@danielnv18
Copy link

danielnv18 commented Mar 3, 2017

mssql-php +1

Edited: I also voted in the survey

@francarmona
Copy link

mssql-php +1

@sirio3mil
Copy link

sqlsrv-php, cuz sqlsrv is the Microsoft driver's name, mssql is the name of the old and obsolete non Microsoft connector for PHP, not even included in PHP 7.

@LuisBosquez
Copy link

@danielnv18 @francarmona @sirio3mil We uploaded a newer version of this image here: https://hub.docker.com/r/lbosqmsft/mssql-php-msphpsql/

Please let me know if there's any feedback

@Glideh
Copy link

Glideh commented Oct 26, 2017

@LuisBosquez I'd like to see the related Dockerfile but the link seems dead.
The new repo for php dev env for SQLServer seems to be this one

@eseyden
Copy link

eseyden commented Oct 30, 2017

@LuisBosquez I'd really like to see that image coming from a Microsoft official account on docker hub instead of your personal account. In addition it would be even better if it extended an official PHP base image instead of a bare Ubuntu one.

@meet-bhagdev
Copy link
Contributor

@Glideh @eseyden I can work with Luis on this. We can definitely get them published to the official Microsoft account

@eseyden
Copy link

eseyden commented Oct 31, 2017

@meet-bhagdev Thank you! It was a little disconcerting being linked out to a personal github and dockerhub page from official documentation. Based on the contents of @LuisBosquez 's Dockerfile I was able to get the drivers working on the php:7-fpm image I use for our Laravel apps. If anyone is interested here is the Dockerfile I ended up with. https://gist.github.com/eseyden/9467bca6102666c823e20e9536e7b764

Thanks again for all the great work on improving the sqlsrv driver experience on php and linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants