Browse Source

use laradock workspace base image

to speed up the build time
Mahmoud Zalt 8 years ago
parent
commit
2d1c1586f5
1 changed files with 40 additions and 75 deletions
  1. 40 75
      workspace/Dockerfile

+ 40 - 75
workspace/Dockerfile

@@ -4,82 +4,49 @@
 #--------------------------------------------------------------------------
 #
 
-FROM phusion/baseimage:latest
+FROM laradock/workspace:1.0.0
 
 MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
 
-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
-
 #
 #--------------------------------------------------------------------------
-# Software's Installation
+# 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).
+#
 
-# 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 Installation
+#--------------------------------------------------------------------------
+#
+# 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
-