Refactor the workspace container

This commit is contained in:
Mahmoud Zalt 2016-07-25 02:48:38 +03:00
parent ca378ac734
commit 2a02ed73e3

View File

@ -1,3 +1,9 @@
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM phusion/baseimage:latest FROM phusion/baseimage:latest
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me> MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
@ -11,6 +17,12 @@ ENV LC_CTYPE=UTF-8
ENV LANG=en_US.UTF-8 ENV LANG=en_US.UTF-8
ENV TERM xterm ENV TERM xterm
#
#--------------------------------------------------------------------------
# Software's Installation
#--------------------------------------------------------------------------
#
# Install "software-properties-common" (for the "add-apt-repository") # Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
software-properties-common software-properties-common
@ -19,7 +31,7 @@ RUN apt-get update && apt-get install -y \
RUN add-apt-repository -y \ RUN add-apt-repository -y \
ppa:ondrej/php ppa:ondrej/php
# Install PHP-CLI 7, some PHP extentions and some useful Tools with APT # Install "PHP-CLI 7", "PHP extentions", "useful Tools"
RUN apt-get update && apt-get install -y --force-yes \ RUN apt-get update && apt-get install -y --force-yes \
php7.0-cli \ php7.0-cli \
php7.0-common \ php7.0-common \
@ -50,38 +62,45 @@ RUN apt-get update && apt-get install -y --force-yes \
nano \ nano \
pkg-config pkg-config
# Clean up, to free some space # Clean up now, to free up some space
RUN apt-get clean RUN apt-get clean
# remove load xdebug extension (only load on phpunit command) # Composer: Install composer and add its bin to the PATH.
RUN sed -i 's/^/;/g' /etc/php/7.0/cli/conf.d/20-xdebug.ini
# Add bin folder of composer to PATH.
RUN echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc
# Install Composer
RUN curl -s http://getcomposer.org/installer | php \ 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 && mv composer.phar /usr/local/bin/composer
# Load xdebug Zend extension with phpunit command # Prestissimo: Install Prestissimo (A Composer parallel install plugin)
RUN echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/laravel/vendor/bin/phpunit'" >> ~/.bashrc ARG INSTALL_PRESTISSIMO=false
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
composer global require "hirak/prestissimo:^0.3"; \
fi
# Install mongodb extension # MongoDB: Install the mongodb extension
RUN pecl install mongodb RUN pecl install mongodb \
RUN echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini && echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini
# Install nvm (Node Version Manager) # XDebug: Load the xdebug extension only with phpunit commands
RUN 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
# NVM: Install nvm (A Node Version Manager)
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
ENV NVM_DIR=/root/.nvm ENV NVM_DIR=/root/.nvm
# Install stable node # Node: Install node
RUN . ~/.nvm/nvm.sh \ RUN . ~/.nvm/nvm.sh \
&& nvm install stable \ && nvm install stable \
&& nvm use stable \ && nvm use stable \
&& nvm alias stable \ && nvm alias stable \
&& npm install -g gulp bower && npm install -g gulp bower
#
#--------------------------------------------------------------------------
# Final Touch
#--------------------------------------------------------------------------
#
# Source the bash # Source the bash
RUN . ~/.bashrc RUN . ~/.bashrc
@ -90,8 +109,3 @@ RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
WORKDIR /var/www/laravel WORKDIR /var/www/laravel
# Install optional software
ARG INSTALL_PRESTISSIMO=false
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
composer global require "hirak/prestissimo:^0.3"; \
fi