Refactor the PHP 7 Dockerfile

This commit is contained in:
Mahmoud Zalt 2016-07-25 01:30:19 +03:00
parent 23b0906cd7
commit c8d4461771
1 changed files with 48 additions and 25 deletions

View File

@ -1,41 +1,60 @@
FROM php:7.0-fpm #
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> FROM php:7.0-fpm
ADD ./laravel.ini /usr/local/etc/php/conf.d ADD ./laravel.ini /usr/local/etc/php/conf.d
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
RUN apt-get update && apt-get install -y \ RUN apt-get update
libpq-dev \
libmemcached-dev \ #
#--------------------------------------------------------------------------
# Software's Installation
#--------------------------------------------------------------------------
#
# Installing tools and PHP extentions using "apt", "docker-php", "pecl",
#
# Install "curl", "libmemcached-dev", "libpq-dev", "libjpeg-dev",
# "libpng12-dev", "libfreetype6-dev", "libssl-dev", "libmcrypt-dev",
RUN apt-get install -y --no-install-recommends \
curl \ curl \
libmemcached-dev \
libpq-dev \
libjpeg-dev \ libjpeg-dev \
libpng12-dev \ libpng12-dev \
libfreetype6-dev \ libfreetype6-dev \
libssl-dev \ libssl-dev \
libmcrypt-dev \ libmcrypt-dev
--no-install-recommends \
&& rm -r /var/lib/apt/lists/*
# install mcrypt library # Install the PHP mcrypt extention
RUN docker-php-ext-install mcrypt RUN docker-php-ext-install mcrypt
# Install mongodb driver # Install the PHP pdo_mysql extention
RUN pecl install mongodb RUN docker-php-ext-install pdo_mysql
# configure gd library # Install the PHP pdo_pgsql extention
RUN docker-php-ext-configure gd \ RUN docker-php-ext-install pdo_pgsql
# Install the PHP gd library
RUN docker-php-ext-install gd \
&& docker-php-ext-configure gd \
--enable-gd-native-ttf \ --enable-gd-native-ttf \
--with-jpeg-dir=/usr/lib \ --with-jpeg-dir=/usr/lib \
--with-freetype-dir=/usr/include/freetype2 --with-freetype-dir=/usr/include/freetype2
# Install extensions using the helper script provided by the base image # Install the mongodb extention
RUN docker-php-ext-install \ RUN pecl install mongodb
pdo_mysql \
pdo_pgsql \
gd
# Install Memcached for php 7 # Install the xdebug extention
RUN pecl install xdebug \
&& docker-php-ext-enable xdebug
# Install the memcached extention
RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
&& mkdir -p memcached \ && mkdir -p memcached \
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
@ -50,9 +69,13 @@ RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-m
&& rm /tmp/memcached.tar.gz \ && rm /tmp/memcached.tar.gz \
&& docker-php-ext-enable memcached && docker-php-ext-enable memcached
# Install xdebug #
RUN pecl install xdebug \ #--------------------------------------------------------------------------
&& docker-php-ext-enable xdebug # Final Touch
#--------------------------------------------------------------------------
#
RUN rm -r /var/lib/apt/lists/*
RUN usermod -u 1000 www-data RUN usermod -u 1000 www-data