use laradock workspace base image

to speed up the build time
This commit is contained in:
Mahmoud Zalt 2016-07-27 04:22:20 +03:00
parent 5bb3d3b6a8
commit 2d1c1586f5

View File

@ -4,82 +4,49 @@
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
FROM phusion/baseimage:latest FROM laradock/workspace:1.0.0
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
RUN DEBIAN_FRONTEND=noninteractive #
RUN locale-gen en_US.UTF-8 #--------------------------------------------------------------------------
# Mandatory Software's Installation
ENV LANGUAGE=en_US.UTF-8 #--------------------------------------------------------------------------
ENV LC_ALL=en_US.UTF-8 #
ENV LC_CTYPE=UTF-8 # Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are
ENV LANG=en_US.UTF-8 # installed on the base image 'laradock/workspace' image. If you want
ENV TERM xterm # to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/LaraDock/workspace).
# Add the "PHP 7" ppa #
RUN apt-get install -y software-properties-common && \
add-apt-repository -y ppa:ondrej/php
# #
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# Software's Installation # Optional Software's Installation
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
# Optional Software's will only be installed if you set them to `true`
# Install "PHP Extentions", "libraries", "Software's" # in the `docker-compose.yml` before the build.
RUN apt-get update && \ #
apt-get install -y --force-yes \ # - INSTALL_XDEBUG= false
php7.0-cli \ # - INSTALL_MONGO= false
php7.0-common \ # - COMPOSER_GLOBAL_INSTALL= false
php7.0-curl \ # - INSTALL_NODE= false
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
##################################### #####################################
# Composer: # xDebug:
##################################### #####################################
# Install composer and add its bin to the PATH. # Check if xDebug needs to be installed
RUN curl -s http://getcomposer.org/installer | php && \ ARG INSTALL_XDEBUG=true
echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc && \ ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
mv composer.phar /usr/local/bin/composer RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Load the xdebug extension only with phpunit commands
# Add the composer.json apt-get install -y --force-yes php7.0-xdebug && \
ADD ./composer.json /root/.composer/composer.json 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 \
# 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 ;fi
##################################### #####################################
# MongoDB: # MongoDB:
##################################### #####################################
@ -94,17 +61,18 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
;fi ;fi
##################################### #####################################
# xDebug: # Composer:
##################################### #####################################
# Check if xDebug needs to be installed # Add the composer.json
ARG INSTALL_XDEBUG=true ADD ./composer.json /root/.composer/composer.json
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
RUN if [ ${INSTALL_XDEBUG} = true ]; then \ # Check if global install need to be runned
# Load the xdebug extension only with phpunit commands ARG COMPOSER_GLOBAL_INSTALL=true
apt-get install -y --force-yes php7.0-xdebug && \ ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \ RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc \ # run the install
composer global install \
;fi ;fi
##################################### #####################################
@ -137,12 +105,9 @@ ENV if [ ${INSTALL_NODE} = true ]; then \
#-------------------------------------------------------------------------- #--------------------------------------------------------------------------
# #
# Source the bash
RUN . ~/.bashrc
# Clean up # Clean up
RUN apt-get clean && \ RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Set default work directory
WORKDIR /var/www/laravel WORKDIR /var/www/laravel