2016-07-25 07:48:38 +08:00
|
|
|
#
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
# Image Setup
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
|
2016-05-18 12:11:49 +08:00
|
|
|
FROM phusion/baseimage:latest
|
2016-05-18 07:46:27 +08:00
|
|
|
|
|
|
|
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|
|
|
|
|
|
|
RUN DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN locale-gen en_US.UTF-8
|
2016-05-18 08:54:21 +08:00
|
|
|
|
2016-05-18 07:46:27 +08:00
|
|
|
ENV LANGUAGE=en_US.UTF-8
|
|
|
|
ENV LC_ALL=en_US.UTF-8
|
2016-05-18 09:38:46 +08:00
|
|
|
ENV LC_CTYPE=UTF-8
|
|
|
|
ENV LANG=en_US.UTF-8
|
2016-05-18 08:54:21 +08:00
|
|
|
ENV TERM xterm
|
|
|
|
|
2016-07-25 11:25:38 +08:00
|
|
|
# Add the "PHP 7" ppa
|
|
|
|
RUN apt-get install -y software-properties-common && \
|
|
|
|
add-apt-repository -y ppa:ondrej/php
|
|
|
|
|
2016-07-25 07:48:38 +08:00
|
|
|
#
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
# Software's Installation
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
|
2016-07-25 11:25:38 +08:00
|
|
|
# Install "PHP Extentions", "libraries", "Software's"
|
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get install -y --force-yes \
|
2016-05-18 08:54:21 +08:00
|
|
|
php7.0-cli \
|
|
|
|
php7.0-common \
|
|
|
|
php7.0-curl \
|
|
|
|
php7.0-json \
|
2016-05-18 13:23:53 +08:00
|
|
|
php7.0-xml \
|
2016-05-18 08:54:21 +08:00
|
|
|
php7.0-mbstring \
|
|
|
|
php7.0-mcrypt \
|
|
|
|
php7.0-mysql \
|
2016-05-24 04:20:07 +08:00
|
|
|
php7.0-pgsql \
|
2016-05-19 08:06:34 +08:00
|
|
|
php7.0-sqlite \
|
|
|
|
php7.0-sqlite3 \
|
2016-05-18 12:58:33 +08:00
|
|
|
php7.0-zip \
|
2016-05-24 22:44:52 +08:00
|
|
|
php7.0-memcached \
|
2016-06-16 14:57:27 +08:00
|
|
|
php7.0-gd \
|
2016-07-25 11:25:38 +08:00
|
|
|
pkg-config \
|
2016-06-11 19:38:26 +08:00
|
|
|
php-dev \
|
|
|
|
libcurl4-openssl-dev \
|
|
|
|
libedit-dev \
|
|
|
|
libssl-dev \
|
|
|
|
libxml2-dev \
|
|
|
|
xz-utils \
|
2016-05-19 08:06:34 +08:00
|
|
|
libsqlite3-dev \
|
2016-07-25 11:25:38 +08:00
|
|
|
sqlite3 \
|
2016-05-18 08:54:21 +08:00
|
|
|
git \
|
|
|
|
curl \
|
|
|
|
vim \
|
2016-07-21 04:59:50 +08:00
|
|
|
nano \
|
2016-07-25 11:25:38 +08:00
|
|
|
&& apt-get clean
|
2016-05-19 08:25:02 +08:00
|
|
|
|
2016-07-25 12:00:50 +08:00
|
|
|
#####################################
|
|
|
|
# Composer:
|
|
|
|
#####################################
|
|
|
|
|
|
|
|
# Install composer and add its bin to the PATH.
|
2016-07-25 11:25:38 +08:00
|
|
|
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
|
|
|
|
|
2016-07-25 12:00:50 +08:00
|
|
|
# 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}
|
2016-07-25 12:15:26 +08:00
|
|
|
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
2016-07-25 12:00:50 +08:00
|
|
|
# run the install
|
|
|
|
composer global install \
|
2016-07-25 11:25:38 +08:00
|
|
|
;fi
|
|
|
|
|
2016-07-25 12:00:50 +08:00
|
|
|
|
|
|
|
#####################################
|
|
|
|
# MongoDB:
|
|
|
|
#####################################
|
|
|
|
|
|
|
|
# Check if Mongo needs to be installed
|
2016-07-25 11:25:38 +08:00
|
|
|
ARG INSTALL_MONGO=true
|
|
|
|
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
|
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
2016-07-25 12:00:50 +08:00
|
|
|
# Install the mongodb extension
|
2016-07-25 11:25:38 +08:00
|
|
|
pecl install mongodb && \
|
2016-07-25 12:00:50 +08:00
|
|
|
echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini \
|
2016-07-25 11:25:38 +08:00
|
|
|
;fi
|
|
|
|
|
2016-07-25 12:00:50 +08:00
|
|
|
#####################################
|
|
|
|
# xDebug:
|
|
|
|
#####################################
|
|
|
|
|
|
|
|
# Check if xDebug needs to be installed
|
2016-07-25 11:25:38 +08:00
|
|
|
ARG INSTALL_XDEBUG=true
|
|
|
|
ENV INSTALL_XDEBUG ${INSTALL_XDEBUG}
|
|
|
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
2016-07-25 12:00:50 +08:00
|
|
|
# Load the xdebug extension only with phpunit commands
|
2016-07-25 11:25:38 +08:00
|
|
|
apt-get install -y --force-yes php7.0-xdebug && \
|
2016-07-25 12:00:50 +08:00
|
|
|
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 \
|
2016-07-25 11:25:38 +08:00
|
|
|
;fi
|
|
|
|
|
2016-07-25 12:00:50 +08:00
|
|
|
#####################################
|
|
|
|
# Node / NVM:
|
|
|
|
#####################################
|
|
|
|
|
|
|
|
# Check if NVM needs to be installed
|
2016-07-25 11:25:38 +08:00
|
|
|
ARG INSTALL_NODE=true
|
|
|
|
ENV INSTALL_NODE ${INSTALL_NODE}
|
|
|
|
RUN if [ ${INSTALL_NODE} = true ]; then \
|
2016-07-25 12:00:50 +08:00
|
|
|
# Install nvm (A Node Version Manager)
|
2016-07-25 11:25:38 +08:00
|
|
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash \
|
|
|
|
;fi
|
2016-07-25 12:00:50 +08:00
|
|
|
# Again check if NVM needs to be installed
|
|
|
|
# I had to split this condifiton link this because when I get it inside the above if statment is refuses to work!
|
2016-07-25 11:25:38 +08:00
|
|
|
ENV if [ ${INSTALL_NODE} = true ]; then \
|
2016-07-25 12:00:50 +08:00
|
|
|
# Set the ENV
|
2016-07-25 11:25:38 +08:00
|
|
|
NVM_DIR=/root/.nvm \
|
2016-07-25 12:00:50 +08:00
|
|
|
# Install NodeJS with NVM
|
2016-07-25 11:25:38 +08:00
|
|
|
RUN . ~/.nvm/nvm.sh && \
|
|
|
|
nvm install stable && \
|
|
|
|
nvm use stable && \
|
|
|
|
nvm alias stable && \
|
|
|
|
npm install -g gulp bower \
|
|
|
|
;fi
|
2016-06-22 09:33:17 +08:00
|
|
|
|
2016-07-25 07:48:38 +08:00
|
|
|
#
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
# Final Touch
|
|
|
|
#--------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
|
2016-05-18 15:25:54 +08:00
|
|
|
# Source the bash
|
2016-05-18 13:40:08 +08:00
|
|
|
RUN . ~/.bashrc
|
2016-05-18 13:07:54 +08:00
|
|
|
|
2016-05-18 07:46:27 +08:00
|
|
|
# Clean up
|
2016-07-25 11:25:38 +08:00
|
|
|
RUN apt-get clean && \
|
|
|
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
2016-05-18 07:46:27 +08:00
|
|
|
|
|
|
|
WORKDIR /var/www/laravel
|
2016-06-23 04:47:06 +08:00
|
|
|
|