Skip to content

Commit

Permalink
Merge branch 'master' into php70
Browse files Browse the repository at this point in the history
  • Loading branch information
hranicka committed May 13, 2017
2 parents e41578c + be3750f commit 01cb85f
Showing 1 changed file with 182 additions and 175 deletions.
357 changes: 182 additions & 175 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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/*

0 comments on commit 01cb85f

Please sign in to comment.