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