From 5bb3d3b6a8cdabfbeba44f7484503870f4c8a11f Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 03:57:32 +0300 Subject: [PATCH 1/5] rename PHP-FPM Dockerfile5 to Dockerfile56 --- README.md | 8 ++++---- php-fpm/{Dockerfile-5 => Dockerfile-56} | 0 2 files changed, 4 insertions(+), 4 deletions(-) rename php-fpm/{Dockerfile-5 => Dockerfile-56} (100%) diff --git a/README.md b/README.md index 62f0c230..715f969a 100644 --- a/README.md +++ b/README.md @@ -703,7 +703,7 @@ By default **PHP-FPM 7.0** is running. 2 - Search for `Dockerfile-70` in the PHP container section. -3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-5`, like this: +3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this: ```txt php-fpm: @@ -722,16 +722,16 @@ docker-compose build php 1 - Follow the steps of (Switch from PHP `7.0` to PHP `5.6`) except the last one "rebuilding container". -2 - Open the `docker-compose.yml` again and make sure you are using `Dockerfile-5` like this: +2 - Open the `docker-compose.yml` again and make sure you are using `Dockerfile-56` like this: ```txt php-fpm: build: context: ./php-fpm - dockerfile: Dockerfile-5 + dockerfile: Dockerfile-56 ``` -3 - Open `php-fpm/Dockerfile-5` file and on the first line replace the PHP version from (`FROM php:5.6-fpm`) to (`FROM php:5.5-fpm`). +3 - Open `php-fpm/Dockerfile-56` file and on the first line replace the PHP version from (`FROM php:5.6-fpm`) to (`FROM php:5.5-fpm`). 4 - Now you can rebuild the container diff --git a/php-fpm/Dockerfile-5 b/php-fpm/Dockerfile-56 similarity index 100% rename from php-fpm/Dockerfile-5 rename to php-fpm/Dockerfile-56 From 2d1c1586f5c4b6e03c0a92b8dbb4a58d3b2569ed Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 04:22:20 +0300 Subject: [PATCH 2/5] use laradock workspace base image to speed up the build time --- workspace/Dockerfile | 115 +++++++++++++++---------------------------- 1 file changed, 40 insertions(+), 75 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index f03af409..a5af2f41 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -4,82 +4,49 @@ #-------------------------------------------------------------------------- # -FROM phusion/baseimage:latest +FROM laradock/workspace:1.0.0 MAINTAINER Mahmoud Zalt -RUN DEBIAN_FRONTEND=noninteractive -RUN locale-gen en_US.UTF-8 - -ENV LANGUAGE=en_US.UTF-8 -ENV LC_ALL=en_US.UTF-8 -ENV LC_CTYPE=UTF-8 -ENV LANG=en_US.UTF-8 -ENV TERM xterm - -# Add the "PHP 7" ppa -RUN apt-get install -y software-properties-common && \ - add-apt-repository -y ppa:ondrej/php +# +#-------------------------------------------------------------------------- +# Mandatory Software's Installation +#-------------------------------------------------------------------------- +# +# Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are +# installed on the base image 'laradock/workspace' image. If you want +# to add more Software's or remove existing one, you need to edit the +# base image (https://github.com/LaraDock/workspace). +# # #-------------------------------------------------------------------------- -# Software's Installation +# Optional Software's Installation #-------------------------------------------------------------------------- # - -# Install "PHP Extentions", "libraries", "Software's" -RUN apt-get update && \ - apt-get install -y --force-yes \ - php7.0-cli \ - php7.0-common \ - php7.0-curl \ - php7.0-json \ - php7.0-xml \ - php7.0-mbstring \ - php7.0-mcrypt \ - php7.0-mysql \ - php7.0-pgsql \ - php7.0-sqlite \ - php7.0-sqlite3 \ - php7.0-zip \ - php7.0-memcached \ - php7.0-gd \ - pkg-config \ - php-dev \ - libcurl4-openssl-dev \ - libedit-dev \ - libssl-dev \ - libxml2-dev \ - xz-utils \ - libsqlite3-dev \ - sqlite3 \ - git \ - curl \ - vim \ - nano \ - && apt-get clean +# Optional Software's will only be installed if you set them to `true` +# in the `docker-compose.yml` before the build. +# +# - INSTALL_XDEBUG= false +# - INSTALL_MONGO= false +# - COMPOSER_GLOBAL_INSTALL= false +# - INSTALL_NODE= false +# ##################################### -# Composer: +# xDebug: ##################################### -# Install composer and add its bin to the PATH. -RUN curl -s http://getcomposer.org/installer | php && \ - echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc && \ - mv composer.phar /usr/local/bin/composer - -# Add the composer.json -ADD ./composer.json /root/.composer/composer.json - -# Check if global install need to be runned -ARG COMPOSER_GLOBAL_INSTALL=true -ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL} -RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \ - # run the install - composer global install \ +# Check if xDebug needs to be installed +ARG INSTALL_XDEBUG=true +ENV INSTALL_XDEBUG ${INSTALL_XDEBUG} +RUN if [ ${INSTALL_XDEBUG} = true ]; then \ + # Load the xdebug extension only with phpunit commands + apt-get install -y --force-yes php7.0-xdebug && \ + sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \ + echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \ ;fi - ##################################### # MongoDB: ##################################### @@ -94,17 +61,18 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \ ;fi ##################################### -# xDebug: +# Composer: ##################################### -# Check if xDebug needs to be installed -ARG INSTALL_XDEBUG=true -ENV INSTALL_XDEBUG ${INSTALL_XDEBUG} -RUN if [ ${INSTALL_XDEBUG} = true ]; then \ - # Load the xdebug extension only with phpunit commands - apt-get install -y --force-yes php7.0-xdebug && \ - sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \ - echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \ +# Add the composer.json +ADD ./composer.json /root/.composer/composer.json + +# Check if global install need to be runned +ARG COMPOSER_GLOBAL_INSTALL=true +ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL} +RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \ + # run the install + composer global install \ ;fi ##################################### @@ -137,12 +105,9 @@ ENV if [ ${INSTALL_NODE} = true ]; then \ #-------------------------------------------------------------------------- # -# Source the bash -RUN . ~/.bashrc - # Clean up RUN apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Set default work directory WORKDIR /var/www/laravel - From c792a780ee1cb37281b06a19845635e739f16621 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 04:22:31 +0300 Subject: [PATCH 3/5] use laradock php-fpm base images to speed up the build time --- php-fpm/Dockerfile-56 | 80 ++++++++++++++----------------------- php-fpm/Dockerfile-70 | 92 +++++++++++++------------------------------ 2 files changed, 57 insertions(+), 115 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index 62d6d831..e5a38438 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -4,65 +4,32 @@ #-------------------------------------------------------------------------- # -FROM php:5.6-fpm +FROM laradock/php-fpm:5.6 MAINTAINER Mahmoud Zalt -ADD ./laravel.ini /usr/local/etc/php/conf.d -ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ +# +#-------------------------------------------------------------------------- +# Mandatory Software's Installation +#-------------------------------------------------------------------------- +# +# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....) +# are installed on the base image 'laradock/php-fpm' image. If you want +# to add more Software's or remove existing one, you need to edit the +# base image (https://github.com/LaraDock/php-fpm). +# # #-------------------------------------------------------------------------- -# Software's Installation +# Optional Software's Installation #-------------------------------------------------------------------------- # -# Installing tools and PHP extentions using "apt", "docker-php", "pecl", +# Optional Software's will only be installed if you set them to `true` +# in the `docker-compose.yml` before the build. +# +# - INSTALL_XDEBUG= false +# - INSTALL_MONGO= false # - -# Install "curl", "libmemcached-dev", "libpq-dev", "libjpeg-dev", -# "libpng12-dev", "libfreetype6-dev", "libssl-dev", "libmcrypt-dev", -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - curl \ - libmemcached-dev \ - libz-dev \ - libpq-dev \ - libjpeg-dev \ - libpng12-dev \ - libfreetype6-dev \ - libssl-dev \ - libmcrypt-dev - -# Install the PHP mcrypt extention -RUN docker-php-ext-install mcrypt - -# Install the PHP pdo_mysql extention -RUN docker-php-ext-install pdo_mysql - -# Install the PHP pdo_pgsql extention -RUN docker-php-ext-install pdo_pgsql - -##################################### -# gd: -##################################### - -# Install the PHP gd library -RUN docker-php-ext-install gd && \ - docker-php-ext-configure gd \ - --enable-gd-native-ttf \ - --with-jpeg-dir=/usr/lib \ - --with-freetype-dir=/usr/include/freetype2 - -##################################### -# MongoDB: -##################################### - -ARG INSTALL_MONGO=true -ENV INSTALL_MONGO ${INSTALL_MONGO} -RUN if [ ${INSTALL_MONGO} = true ]; then \ - # Install the mongodb extention - pecl install mongodb \ -;fi ##################################### # xDebug: @@ -76,6 +43,16 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ docker-php-ext-enable xdebug \ ;fi +##################################### +# MongoDB: +##################################### + +ARG INSTALL_MONGO=true +ENV INSTALL_MONGO ${INSTALL_MONGO} +RUN if [ ${INSTALL_MONGO} = true ]; then \ + # Install the mongodb extention + pecl install mongodb \ +;fi # #-------------------------------------------------------------------------- @@ -83,6 +60,9 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ #-------------------------------------------------------------------------- # +ADD ./laravel.ini /usr/local/etc/php/conf.d +ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ + RUN rm -r /var/lib/apt/lists/* RUN usermod -u 1000 www-data diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 5ffeccb5..04298430 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -4,65 +4,32 @@ #-------------------------------------------------------------------------- # -FROM php:7.0-fpm +FROM laradock/php-fpm:7.0 MAINTAINER Mahmoud Zalt -ADD ./laravel.ini /usr/local/etc/php/conf.d -ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ +# +#-------------------------------------------------------------------------- +# Mandatory Software's Installation +#-------------------------------------------------------------------------- +# +# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....) +# are installed on the base image 'laradock/php-fpm' image. If you want +# to add more Software's or remove existing one, you need to edit the +# base image (https://github.com/LaraDock/php-fpm). +# # #-------------------------------------------------------------------------- -# Software's Installation +# Optional Software's Installation #-------------------------------------------------------------------------- # -# Installing tools and PHP extentions using "apt", "docker-php", "pecl", +# Optional Software's will only be installed if you set them to `true` +# in the `docker-compose.yml` before the build. +# +# - INSTALL_XDEBUG= false +# - INSTALL_MONGO= false # - -# Install "curl", "libmemcached-dev", "libpq-dev", "libjpeg-dev", -# "libpng12-dev", "libfreetype6-dev", "libssl-dev", "libmcrypt-dev", -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - curl \ - libmemcached-dev \ - libz-dev \ - libpq-dev \ - libjpeg-dev \ - libpng12-dev \ - libfreetype6-dev \ - libssl-dev \ - libmcrypt-dev - -# Install the PHP mcrypt extention -RUN docker-php-ext-install mcrypt - -# Install the PHP pdo_mysql extention -RUN docker-php-ext-install pdo_mysql - -# Install the PHP pdo_pgsql extention -RUN docker-php-ext-install pdo_pgsql - -##################################### -# gd: -##################################### - -# Install the PHP gd library -RUN docker-php-ext-install gd && \ - docker-php-ext-configure gd \ - --enable-gd-native-ttf \ - --with-jpeg-dir=/usr/lib \ - --with-freetype-dir=/usr/include/freetype2 - -##################################### -# MongoDB: -##################################### - -ARG INSTALL_MONGO=true -ENV INSTALL_MONGO ${INSTALL_MONGO} -RUN if [ ${INSTALL_MONGO} = true ]; then \ - # Install the mongodb extention - pecl install mongodb \ -;fi ##################################### # xDebug: @@ -77,23 +44,15 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \ ;fi ##################################### -# Memcached: +# MongoDB: ##################################### -# Install the memcached extention -RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ - && mkdir -p memcached \ - && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ - && ( \ - cd memcached \ - && phpize \ - && ./configure \ - && make -j$(nproc) \ - && make install \ - ) \ - && rm -r memcached \ - && rm /tmp/memcached.tar.gz \ - && docker-php-ext-enable memcached +ARG INSTALL_MONGO=true +ENV INSTALL_MONGO ${INSTALL_MONGO} +RUN if [ ${INSTALL_MONGO} = true ]; then \ + # Install the mongodb extention + pecl install mongodb \ +;fi # #-------------------------------------------------------------------------- @@ -101,6 +60,9 @@ RUN curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-m #-------------------------------------------------------------------------- # +ADD ./laravel.ini /usr/local/etc/php/conf.d +ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/ + RUN rm -r /var/lib/apt/lists/* RUN usermod -u 1000 www-data From e65f0dcebaf8244e7fd8aa2b1e42bc3aaedfdda6 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 04:34:45 +0300 Subject: [PATCH 4/5] add docker build version to the base image --- php-fpm/Dockerfile-56 | 2 +- php-fpm/Dockerfile-70 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/php-fpm/Dockerfile-56 b/php-fpm/Dockerfile-56 index e5a38438..65b1bb73 100644 --- a/php-fpm/Dockerfile-56 +++ b/php-fpm/Dockerfile-56 @@ -4,7 +4,7 @@ #-------------------------------------------------------------------------- # -FROM laradock/php-fpm:5.6 +FROM laradock/php-fpm:5.6--1.0 MAINTAINER Mahmoud Zalt diff --git a/php-fpm/Dockerfile-70 b/php-fpm/Dockerfile-70 index 04298430..1a994eff 100644 --- a/php-fpm/Dockerfile-70 +++ b/php-fpm/Dockerfile-70 @@ -4,7 +4,7 @@ #-------------------------------------------------------------------------- # -FROM laradock/php-fpm:7.0 +FROM laradock/php-fpm:7.0--1.0 MAINTAINER Mahmoud Zalt From 10af217349102a9afbb6f17cf890f5cdacc7d720 Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 04:39:54 +0300 Subject: [PATCH 5/5] update workspace build version --- workspace/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index a5af2f41..db96f488 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -4,7 +4,7 @@ #-------------------------------------------------------------------------- # -FROM laradock/workspace:1.0.0 +FROM laradock/workspace:1.0 MAINTAINER Mahmoud Zalt