-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
182 additions
and
175 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,214 +3,221 @@ FROM php:7.0.12-fpm | |
MAINTAINER Jaroslav Hranicka <[email protected]> | ||
|
||
ENV DEBIAN_FRONTEND noninteractive | ||
|
||
COPY bin/* /usr/local/bin/ | ||
RUN chmod -R 700 /usr/local/bin/ | ||
|
||
|
||
# Locales | ||
RUN apt-get update \ | ||
&& apt-get install -y locales | ||
RUN apt-get update \ | ||
&& apt-get install -y locales | ||
|
||
RUN dpkg-reconfigure locales \ | ||
&& locale-gen C.UTF-8 \ | ||
&& /usr/sbin/update-locale LANG=C.UTF-8 | ||
RUN dpkg-reconfigure locales \ | ||
&& locale-gen C.UTF-8 \ | ||
&& /usr/sbin/update-locale LANG=C.UTF-8 | ||
|
||
RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen \ | ||
&& locale-gen | ||
RUN echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen \ | ||
&& locale-gen | ||
|
||
ENV LC_ALL C.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US.UTF-8 | ||
ENV LC_ALL C.UTF-8 | ||
ENV LANG en_US.UTF-8 | ||
ENV LANGUAGE en_US.UTF-8 | ||
|
||
|
||
# Common | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
openssl \ | ||
git | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
openssl \ | ||
git | ||
|
||
|
||
# PHP | ||
# intl | ||
RUN apt-get update \ | ||
&& apt-get install -y libicu-dev \ | ||
&& docker-php-ext-configure intl \ | ||
&& docker-php-ext-install intl | ||
|
||
# xml | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libxml2-dev \ | ||
libxslt-dev \ | ||
&& docker-php-ext-install \ | ||
dom \ | ||
xmlrpc \ | ||
xsl | ||
|
||
# images | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libfreetype6-dev \ | ||
libjpeg62-turbo-dev \ | ||
libpng12-dev \ | ||
libgd-dev \ | ||
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ | ||
&& docker-php-ext-install \ | ||
gd \ | ||
exif | ||
|
||
# database | ||
RUN docker-php-ext-install \ | ||
mysqli \ | ||
pdo \ | ||
pdo_mysql | ||
|
||
# mcrypt | ||
RUN apt-get update \ | ||
&& apt-get install -y libmcrypt-dev \ | ||
&& docker-php-ext-install mcrypt | ||
|
||
# strings | ||
RUN docker-php-ext-install \ | ||
gettext \ | ||
mbstring | ||
|
||
# math | ||
RUN apt-get update \ | ||
&& apt-get install -y libgmp-dev \ | ||
&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \ | ||
&& docker-php-ext-install \ | ||
gmp \ | ||
bcmath | ||
|
||
# compression | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libbz2-dev \ | ||
zlib1g-dev \ | ||
&& docker-php-ext-install \ | ||
zip \ | ||
bz2 | ||
|
||
# ftp | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libssl-dev \ | ||
&& docker-php-ext-install \ | ||
ftp | ||
|
||
# ssh2 | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libssh2-1-dev | ||
|
||
# others | ||
RUN docker-php-ext-install \ | ||
soap \ | ||
sockets \ | ||
sysvmsg \ | ||
sysvsem \ | ||
sysvshm | ||
|
||
# PECL | ||
RUN docker-php-pecl-install \ | ||
ssh2-1.0 \ | ||
redis-3.0 \ | ||
apcu-5.1.5 | ||
|
||
# Memcached | ||
# TODO PECL not available for PHP 7 yet, we must compile it. | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libmemcached-dev \ | ||
libmemcached11 | ||
|
||
RUN cd /tmp \ | ||
&& git clone -b php7 https://github.com/php-memcached-dev/php-memcached \ | ||
&& cd php-memcached \ | ||
&& phpize \ | ||
&& ./configure \ | ||
&& make \ | ||
&& cp /tmp/php-memcached/modules/memcached.so /usr/local/lib/php/extensions/no-debug-non-zts-20151012/memcached.so \ | ||
&& docker-php-ext-enable memcached | ||
|
||
# Install XDebug, but not enable by default. Enable using: | ||
# * php -d$XDEBUG_EXT vendor/bin/phpunit | ||
# * php_xdebug vendor/bin/phpunit | ||
RUN pecl install xdebug-2.4.1 | ||
ENV XDEBUG_EXT zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so | ||
RUN alias php_xdebug="php -d$XDEBUG_EXT vendor/bin/phpunit" | ||
|
||
# Install composer and put binary into $PATH | ||
RUN curl -sS https://getcomposer.org/installer | php \ | ||
&& mv composer.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/composer.phar /usr/local/bin/composer | ||
|
||
# Install PHP Code sniffer | ||
RUN curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar \ | ||
&& chmod 755 phpcs.phar \ | ||
&& mv phpcs.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpcs.phar /usr/local/bin/phpcs \ | ||
&& curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar \ | ||
&& chmod 755 phpcbf.phar \ | ||
&& mv phpcbf.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpcbf.phar /usr/local/bin/phpcbf | ||
|
||
# Install PHPUnit | ||
RUN curl -OL https://phar.phpunit.de/phpunit.phar \ | ||
&& chmod 755 phpunit.phar \ | ||
&& mv phpunit.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpunit.phar /usr/local/bin/phpunit | ||
|
||
ADD php.ini /usr/local/etc/php/conf.d/docker-php.ini | ||
# intl | ||
RUN apt-get update \ | ||
&& apt-get install -y libicu-dev \ | ||
&& docker-php-ext-configure intl \ | ||
&& docker-php-ext-install intl | ||
|
||
# xml | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libxml2-dev \ | ||
libxslt-dev \ | ||
&& docker-php-ext-install \ | ||
dom \ | ||
xmlrpc \ | ||
xsl | ||
|
||
# images | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libfreetype6-dev \ | ||
libjpeg62-turbo-dev \ | ||
libpng12-dev \ | ||
libgd-dev \ | ||
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ | ||
&& docker-php-ext-install \ | ||
gd \ | ||
exif | ||
|
||
# database | ||
RUN docker-php-ext-install \ | ||
mysqli \ | ||
pdo \ | ||
pdo_mysql | ||
|
||
# mcrypt | ||
RUN apt-get update \ | ||
&& apt-get install -y libmcrypt-dev \ | ||
&& docker-php-ext-install mcrypt | ||
|
||
# strings | ||
RUN docker-php-ext-install \ | ||
gettext \ | ||
mbstring | ||
|
||
# math | ||
RUN apt-get update \ | ||
&& apt-get install -y libgmp-dev \ | ||
&& ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \ | ||
&& docker-php-ext-install \ | ||
gmp \ | ||
bcmath | ||
|
||
# compression | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libbz2-dev \ | ||
zlib1g-dev \ | ||
&& docker-php-ext-install \ | ||
zip \ | ||
bz2 | ||
|
||
# ftp | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libssl-dev \ | ||
&& docker-php-ext-install \ | ||
ftp | ||
|
||
# ssh2 | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libssh2-1-dev | ||
|
||
# others | ||
RUN docker-php-ext-install \ | ||
soap \ | ||
sockets \ | ||
calendar \ | ||
sysvmsg \ | ||
sysvsem \ | ||
sysvshm | ||
|
||
# PECL | ||
RUN docker-php-pecl-install \ | ||
# ssh2-1.0 \ | ||
redis-3.0 \ | ||
apcu-5.1.7 | ||
|
||
# SSH2 | ||
# TODO PECL is buggy, we must compile it. | ||
RUN git clone https://github.com/php/pecl-networking-ssh2.git /usr/src/php/ext/ssh2 \ | ||
&& docker-php-ext-install ssh2 | ||
|
||
# Memcached | ||
# TODO PECL not available for PHP 7 yet, we must compile it. | ||
RUN apt-get update \ | ||
&& apt-get install -y \ | ||
libmemcached-dev \ | ||
libmemcached11 | ||
|
||
RUN cd /tmp \ | ||
&& git clone -b php7 https://github.com/php-memcached-dev/php-memcached \ | ||
&& cd php-memcached \ | ||
&& phpize \ | ||
&& ./configure \ | ||
&& make \ | ||
&& cp /tmp/php-memcached/modules/memcached.so /usr/local/lib/php/extensions/no-debug-non-zts-20151012/memcached.so \ | ||
&& docker-php-ext-enable memcached | ||
|
||
# Install XDebug, but not enable by default. Enable using: | ||
# * php -d$XDEBUG_EXT vendor/bin/phpunit | ||
# * php_xdebug vendor/bin/phpunit | ||
RUN pecl install xdebug-2.5.0 | ||
ENV XDEBUG_EXT zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so | ||
RUN alias php_xdebug="php -d$XDEBUG_EXT vendor/bin/phpunit" | ||
|
||
# Install composer and put binary into $PATH | ||
RUN curl -sS https://getcomposer.org/installer | php \ | ||
&& mv composer.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/composer.phar /usr/local/bin/composer | ||
|
||
# Install PHP Code sniffer | ||
RUN curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar \ | ||
&& chmod 755 phpcs.phar \ | ||
&& mv phpcs.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpcs.phar /usr/local/bin/phpcs \ | ||
&& curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar \ | ||
&& chmod 755 phpcbf.phar \ | ||
&& mv phpcbf.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpcbf.phar /usr/local/bin/phpcbf | ||
|
||
# Install PHPUnit | ||
RUN curl -OL https://phar.phpunit.de/phpunit.phar \ | ||
&& chmod 755 phpunit.phar \ | ||
&& mv phpunit.phar /usr/local/bin/ \ | ||
&& ln -s /usr/local/bin/phpunit.phar /usr/local/bin/phpunit | ||
|
||
ADD php.ini /usr/local/etc/php/conf.d/docker-php.ini | ||
|
||
|
||
## NodeJS, NPM | ||
# Install NodeJS | ||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \ | ||
&& apt-get install -y nodejs | ||
# Install NodeJS | ||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \ | ||
&& apt-get install -y nodejs | ||
|
||
# Install Yarn | ||
RUN apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3 \ | ||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list | ||
# Install Yarn | ||
RUN apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3 \ | ||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y yarn | ||
RUN apt-get update \ | ||
&& apt-get install -y yarn | ||
|
||
# Install Grunt globally | ||
RUN npm install -g grunt-cli | ||
# Install Grunt globally | ||
RUN npm install -g grunt-cli | ||
|
||
# Install Gulp globally | ||
RUN npm install -g gulp-cli | ||
# Install Gulp globally | ||
RUN npm install -g gulp-cli | ||
|
||
# Install Bower globally | ||
RUN npm install -g bower | ||
# Install Bower globally | ||
RUN npm install -g bower | ||
|
||
|
||
# MariaDB | ||
RUN apt-get update \ | ||
&& apt-get install -y software-properties-common \ | ||
&& apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db \ | ||
&& add-apt-repository 'deb [arch=amd64,i386] http://mirror.vpsfree.cz/mariadb/repo/10.1/debian jessie main' | ||
RUN apt-get update \ | ||
&& apt-get install -y software-properties-common \ | ||
&& apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db \ | ||
&& add-apt-repository 'deb [arch=amd64,i386] http://mirror.vpsfree.cz/mariadb/repo/10.1/debian jessie main' | ||
|
||
RUN apt-get update \ | ||
&& apt-get install -y mariadb-server \ | ||
&& mysql_install_db | ||
RUN apt-get update \ | ||
&& apt-get install -y mariadb-server \ | ||
&& mysql_install_db | ||
|
||
VOLUME /var/lib/mysql | ||
VOLUME /var/lib/mysql | ||
|
||
ADD my.cnf /etc/mysql/conf.d/my.cnf | ||
ADD my.cnf /etc/mysql/conf.d/my.cnf | ||
|
||
EXPOSE 3306 | ||
EXPOSE 3306 | ||
|
||
|
||
# Redis | ||
RUN apt-get update \ | ||
&& apt-get install -y redis-server | ||
RUN apt-get update \ | ||
&& apt-get install -y redis-server | ||
|
||
EXPOSE 6379 | ||
EXPOSE 6379 | ||
|
||
|
||
# Clean | ||
RUN apt-get clean | ||
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/* | ||
RUN apt-get clean | ||
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/* |