Refactor the workspace container
This commit is contained in:
parent
ca378ac734
commit
2a02ed73e3
@ -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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user