From 2d1c1586f5c4b6e03c0a92b8dbb4a58d3b2569ed Mon Sep 17 00:00:00 2001 From: Mahmoud Zalt Date: Wed, 27 Jul 2016 04:22:20 +0300 Subject: [PATCH] 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 -