laradock/workspace/Dockerfile

112 lines
3.0 KiB
Docker
Raw Normal View History

2016-07-25 07:48:38 +08:00
#
#--------------------------------------------------------------------------
# Image Setup
#--------------------------------------------------------------------------
#
FROM phusion/baseimage:latest
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
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 07:48:38 +08:00
#
#--------------------------------------------------------------------------
# Software's Installation
#--------------------------------------------------------------------------
#
# Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \
software-properties-common
2016-05-18 08:54:21 +08:00
# Add the "PHP 7" ppa
RUN add-apt-repository -y \
ppa:ondrej/php
2016-07-25 07:48:38 +08:00
# Install "PHP-CLI 7", "PHP extentions", "useful Tools"
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 \
php7.0-xml \
2016-05-18 08:54:21 +08:00
php7.0-mbstring \
php7.0-mcrypt \
php7.0-mysql \
php7.0-pgsql \
php7.0-sqlite \
php7.0-sqlite3 \
php7.0-zip \
2016-05-24 22:44:52 +08:00
php7.0-memcached \
php7.0-gd \
php7.0-xdebug \
2016-06-11 19:38:26 +08:00
php-dev \
libcurl4-openssl-dev \
libedit-dev \
libssl-dev \
libxml2-dev \
xz-utils \
sqlite3 \
libsqlite3-dev \
2016-05-18 08:54:21 +08:00
git \
curl \
vim \
nano \
2016-07-21 11:05:52 +08:00
pkg-config
2016-05-18 08:54:21 +08:00
2016-07-25 07:48:38 +08:00
# Clean up now, to free up some space
RUN apt-get clean
2016-07-25 07:48:38 +08:00
# Composer: Install composer and add its bin to the PATH.
RUN curl -s http://getcomposer.org/installer | php \
2016-07-25 07:48:38 +08:00
&& echo "export PATH=${PATH}:/var/www/laravel/vendor/bin" >> ~/.bashrc \
&& mv composer.phar /usr/local/bin/composer
2016-07-25 07:48:38 +08:00
# Prestissimo: Install Prestissimo (A Composer parallel install plugin)
ARG INSTALL_PRESTISSIMO=false
RUN if [ "$INSTALL_PRESTISSIMO" = true ] ; then \
composer global require "hirak/prestissimo:^0.3"; \
fi
2016-07-25 07:48:38 +08:00
# MongoDB: Install the mongodb extension
RUN pecl install mongodb \
&& echo "extension=mongodb.so" >> /etc/php/7.0/cli/php.ini
2016-06-11 19:38:26 +08:00
2016-07-25 07:48:38 +08:00
# 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
2016-07-25 07:48:38 +08:00
# NVM: Install nvm (A Node Version Manager)
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
ENV NVM_DIR=/root/.nvm
2016-07-25 07:48:38 +08:00
# Node: Install node
RUN . ~/.nvm/nvm.sh \
&& nvm install stable \
&& nvm use stable \
&& nvm alias stable \
&& npm install -g gulp bower
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
# Clean up
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
WORKDIR /var/www/laravel