merge the php versions dockerfiles in php-fpm, workspace and php-worker
This commit is contained in:
		@@ -215,28 +215,24 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
 | 
				
			|||||||
<br>
 | 
					<br>
 | 
				
			||||||
<a name="Change-the-PHP-FPM-Version"></a>
 | 
					<a name="Change-the-PHP-FPM-Version"></a>
 | 
				
			||||||
## Change the (PHP-FPM) Version
 | 
					## Change the (PHP-FPM) Version
 | 
				
			||||||
By default **PHP-FPM 7.0** is running.
 | 
					By default the latest stable PHP versin is configured to run.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
 | 
					>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### A) Switch from PHP `7.0` to PHP `5.6`
 | 
					### A) Switch from PHP `7.2` to PHP `5.6`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1 - Open the `docker-compose.yml`.
 | 
					1 - Open the `.env`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2 - Search for `Dockerfile-70` in the PHP container section.
 | 
					2 - Search for `PHP_VERSION`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this:
 | 
					3 - Set the desired version number:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yml
 | 
					```dotenv
 | 
				
			||||||
    php-fpm:
 | 
					PHP_VERSION=5.6
 | 
				
			||||||
        build:
 | 
					 | 
				
			||||||
            context: ./php-fpm
 | 
					 | 
				
			||||||
            dockerfile: Dockerfile-56
 | 
					 | 
				
			||||||
    ...
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
4 - Finally rebuild the container
 | 
					4 - Finally rebuild the image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
docker-compose build php-fpm
 | 
					docker-compose build php-fpm
 | 
				
			||||||
@@ -245,25 +241,6 @@ docker-compose build php-fpm
 | 
				
			|||||||
> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
 | 
					> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### B) Switch from PHP `7.0` or `5.6` to PHP `5.5`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
We do not natively support PHP 5.5 anymore, but you can get it in few steps:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1 - Clone `https://github.com/laradock/php-fpm`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3 - Rename `Dockerfile-56` to `Dockerfile-55`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3 - Edit the file `FROM php:5.6-fpm` to `FROM php:5.5-fpm`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4 - Build an image from `Dockerfile-55`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5 - Open the `docker-compose.yml` file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6 - Point `php-fpm` to your `Dockerfile-55` file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<br>
 | 
					<br>
 | 
				
			||||||
@@ -273,11 +250,23 @@ By default **PHP-CLI 7.0** is running.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
 | 
					>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to edit the `workspace/Dockerfile`.
 | 
					The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to simply change the `PHP_VERSION` in te .env file as follow:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Right now you have to manually edit the `Dockerfile` or create a new one like it's done for the PHP-FPM. (consider contributing).
 | 
					1 - Open the `.env`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2 - Search for `PHP_VERSION`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3 - Set the desired version number:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```dotenv
 | 
				
			||||||
 | 
					PHP_VERSION=7.2
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					4 - Finally rebuild the image
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					docker-compose build workspace
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -558,7 +547,6 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
 | 
				
			|||||||
    php-worker:
 | 
					    php-worker:
 | 
				
			||||||
      build:
 | 
					      build:
 | 
				
			||||||
        context: ./php-worker
 | 
					        context: ./php-worker
 | 
				
			||||||
        dockerfile: "Dockerfile-${PHP_VERSION}" #Dockerfile-71 or #Dockerfile-70 available
 | 
					 | 
				
			||||||
        args:
 | 
					        args:
 | 
				
			||||||
          - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
 | 
					          - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
 | 
				
			||||||
      volumes_from:
 | 
					      volumes_from:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,7 +58,7 @@ That's it! enjoy :)
 | 
				
			|||||||
<a name="features"></a>
 | 
					<a name="features"></a>
 | 
				
			||||||
## Features
 | 
					## Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Easy switch between PHP versions: 7.1, 7.0, 5.6...
 | 
					- Easy switch between PHP versions: 7.2, 7.1, 5.6...
 | 
				
			||||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
 | 
					- Choose your favorite database engine: MySQL, Postgres, MariaDB...
 | 
				
			||||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
 | 
					- Run your own combination of software: Memcached, HHVM, Beanstalkd...
 | 
				
			||||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
 | 
					- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,15 +2,6 @@ version: '3'
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Applications Code Container #############################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # applications:
 | 
					 | 
				
			||||||
    #   image: tianon/true
 | 
					 | 
				
			||||||
    #   volumes:
 | 
					 | 
				
			||||||
    #     - applications-sync:/var/www:nocopy # nocopy is required
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Volumes Setup #############################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					volumes:
 | 
				
			||||||
  applications-sync:
 | 
					  applications-sync:
 | 
				
			||||||
    external:
 | 
					    external:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,7 @@ services:
 | 
				
			|||||||
      build:
 | 
					      build:
 | 
				
			||||||
        context: ./workspace
 | 
					        context: ./workspace
 | 
				
			||||||
        args:
 | 
					        args:
 | 
				
			||||||
 | 
					          - PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
          - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
 | 
					          - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
 | 
				
			||||||
          - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
 | 
					          - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
 | 
				
			||||||
          - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
 | 
					          - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
 | 
				
			||||||
@@ -88,7 +89,6 @@ services:
 | 
				
			|||||||
          - TZ=${WORKSPACE_TIMEZONE}
 | 
					          - TZ=${WORKSPACE_TIMEZONE}
 | 
				
			||||||
          - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
 | 
					          - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
 | 
				
			||||||
          - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
 | 
					          - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
 | 
				
			||||||
        dockerfile: "Dockerfile-${PHP_VERSION}"
 | 
					 | 
				
			||||||
      volumes:
 | 
					      volumes:
 | 
				
			||||||
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
					        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
				
			||||||
      extra_hosts:
 | 
					      extra_hosts:
 | 
				
			||||||
@@ -107,6 +107,7 @@ services:
 | 
				
			|||||||
      build:
 | 
					      build:
 | 
				
			||||||
        context: ./php-fpm
 | 
					        context: ./php-fpm
 | 
				
			||||||
        args:
 | 
					        args:
 | 
				
			||||||
 | 
					          - PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
          - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
 | 
					          - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
 | 
				
			||||||
          - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
 | 
					          - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
 | 
				
			||||||
          - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
 | 
					          - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
 | 
				
			||||||
@@ -132,7 +133,6 @@ services:
 | 
				
			|||||||
          - INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
 | 
					          - INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
 | 
				
			||||||
          - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
 | 
					          - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
 | 
				
			||||||
          - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
 | 
					          - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
 | 
				
			||||||
        dockerfile: "Dockerfile-${PHP_VERSION}"
 | 
					 | 
				
			||||||
      volumes:
 | 
					      volumes:
 | 
				
			||||||
        - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
 | 
					        - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
 | 
				
			||||||
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
					        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
				
			||||||
@@ -149,8 +149,8 @@ services:
 | 
				
			|||||||
    php-worker:
 | 
					    php-worker:
 | 
				
			||||||
      build:
 | 
					      build:
 | 
				
			||||||
        context: ./php-worker
 | 
					        context: ./php-worker
 | 
				
			||||||
        dockerfile: "Dockerfile-${PHP_VERSION}"
 | 
					 | 
				
			||||||
        args:
 | 
					        args:
 | 
				
			||||||
 | 
					          - PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
          - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
 | 
					          - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
 | 
				
			||||||
      volumes:
 | 
					      volumes:
 | 
				
			||||||
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
					        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										13
									
								
								env-example
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								env-example
									
									
									
									
									
								
							@@ -31,8 +31,8 @@ COMPOSE_PATH_SEPARATOR=:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### PHP Version ###########################################
 | 
					### PHP Version ###########################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
 | 
					# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.2 - 7.1 - 7.0 - 5.6 - 5.5
 | 
				
			||||||
PHP_VERSION=72
 | 
					PHP_VERSION=7.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### PHP Interpreter #######################################
 | 
					### PHP Interpreter #######################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -319,6 +319,11 @@ AEROSPIKE_FABRIC_PORT=3001
 | 
				
			|||||||
AEROSPIKE_HEARTBEAT_PORT=3002
 | 
					AEROSPIKE_HEARTBEAT_PORT=3002
 | 
				
			||||||
AEROSPIKE_INFO_PORT=3003
 | 
					AEROSPIKE_INFO_PORT=3003
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Temp solution, this should be in the dockerfile
 | 
				
			||||||
 | 
					# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
 | 
				
			||||||
 | 
					# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz"
 | 
				
			||||||
 | 
					AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### RETHINKDB #############################################
 | 
					### RETHINKDB #############################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RETHINKDB_PORT=8090
 | 
					RETHINKDB_PORT=8090
 | 
				
			||||||
@@ -343,3 +348,7 @@ LARAVEL_ECHO_SERVER_PORT=6001
 | 
				
			|||||||
SOLR_VERSION=5.5
 | 
					SOLR_VERSION=5.5
 | 
				
			||||||
SOLR_PORT=8983
 | 
					SOLR_PORT=8983
 | 
				
			||||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
 | 
					SOLR_DATAIMPORTHANDLER_MYSQL=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### DRUSH_VERSION #########################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DRUSH_VERSION=9.2.3
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,9 @@
 | 
				
			|||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					# Note: Base Image name format {image-tag}-{php-version}
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM laradock/php-fpm:2.0-72
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM laradock/php-fpm:2.2-${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,11 +40,12 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
				
			|||||||
#   - INSTALL_ZIP_ARCHIVE=true
 | 
					#   - INSTALL_ZIP_ARCHIVE=true
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# SOAP:
 | 
					# SOAP:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					ARG INSTALL_SOAP=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
				
			||||||
    # Install the soap extension
 | 
					    # Install the soap extension
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					    apt-get update -yqq && \
 | 
				
			||||||
@@ -50,36 +53,37 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
				
			|||||||
    docker-php-ext-install soap \
 | 
					    docker-php-ext-install soap \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# pgsql
 | 
					# pgsql
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					ARG INSTALL_PGSQL=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
				
			||||||
    # Install the pgsql extension
 | 
					    # Install the pgsql extension
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    docker-php-ext-install pgsql \
 | 
					    docker-php-ext-install pgsql \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# pgsql client
 | 
					# pgsql client
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					ARG INSTALL_PG_CLIENT=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
				
			||||||
    # Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65)
 | 
					    # Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65)
 | 
				
			||||||
    mkdir -p /usr/share/man/man1 && \
 | 
					    mkdir -p /usr/share/man/man1 && \
 | 
				
			||||||
    mkdir -p /usr/share/man/man7 && \
 | 
					    mkdir -p /usr/share/man/man7 && \
 | 
				
			||||||
    # Install the pgsql client
 | 
					    # Install the pgsql client
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y postgresql-client \
 | 
					    apt-get install -y postgresql-client \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# xDebug:
 | 
					# xDebug:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					ARG INSTALL_XDEBUG=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
				
			||||||
    # Install the xdebug extension
 | 
					    # Install the xdebug extension
 | 
				
			||||||
    pecl install xdebug && \
 | 
					    pecl install xdebug && \
 | 
				
			||||||
@@ -89,11 +93,12 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
				
			|||||||
# Copy xdebug configuration for remote debugging
 | 
					# Copy xdebug configuration for remote debugging
 | 
				
			||||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
 | 
					COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Blackfire:
 | 
					# Blackfire:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					ARG INSTALL_BLACKFIRE=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
				
			||||||
    version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 | 
					    version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 | 
				
			||||||
    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
 | 
					    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
 | 
				
			||||||
@@ -102,11 +107,12 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
				
			|||||||
    && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
 | 
					    && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7.0
 | 
					# PHP REDIS EXTENSION
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					ARG INSTALL_PHPREDIS=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
				
			||||||
    # Install Php Redis Extension
 | 
					    # Install Php Redis Extension
 | 
				
			||||||
    printf "\n" | pecl install -o -f redis \
 | 
					    printf "\n" | pecl install -o -f redis \
 | 
				
			||||||
@@ -114,78 +120,83 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
				
			|||||||
    &&  docker-php-ext-enable redis \
 | 
					    &&  docker-php-ext-enable redis \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					# Swoole EXTENSION
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					ARG INSTALL_SWOOLE=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					    # Install Php Swoole Extension
 | 
				
			||||||
    pecl install swoole \
 | 
					    pecl install swoole \
 | 
				
			||||||
    &&  docker-php-ext-enable swoole \
 | 
					    &&  docker-php-ext-enable swoole \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# MongoDB:
 | 
					# MongoDB:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					ARG INSTALL_MONGO=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
				
			||||||
    # Install the mongodb extension
 | 
					    # Install the mongodb extension
 | 
				
			||||||
    pecl install mongodb && \
 | 
					    pecl install mongodb && \
 | 
				
			||||||
    docker-php-ext-enable mongodb \
 | 
					    docker-php-ext-enable mongodb \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# AMQP:
 | 
					# AMQP:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					ARG INSTALL_AMQP=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					    apt-get install librabbitmq-dev -y && \
 | 
				
			||||||
    # Install the amqp extension
 | 
					    # Install the amqp extension
 | 
				
			||||||
    pecl install amqp && \
 | 
					    pecl install amqp && \
 | 
				
			||||||
    docker-php-ext-enable amqp \
 | 
					    docker-php-ext-enable amqp \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# ZipArchive:
 | 
					# ZipArchive:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_ZIP_ARCHIVE=false
 | 
					ARG INSTALL_ZIP_ARCHIVE=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | 
					RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | 
				
			||||||
    # Install the zip extension
 | 
					    # Install the zip extension
 | 
				
			||||||
    docker-php-ext-install zip \
 | 
					    docker-php-ext-install zip \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# bcmath:
 | 
					# bcmath:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_BCMATH=false
 | 
					ARG INSTALL_BCMATH=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
 | 
					RUN if [ ${INSTALL_BCMATH} = true ]; then \
 | 
				
			||||||
    # Install the bcmath extension
 | 
					    # Install the bcmath extension
 | 
				
			||||||
    docker-php-ext-install bcmath \
 | 
					    docker-php-ext-install bcmath \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# GMP (GNU Multiple Precision):
 | 
					# GMP (GNU Multiple Precision):
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_GMP=false
 | 
					ARG INSTALL_GMP=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_GMP} = true ]; then \
 | 
					RUN if [ ${INSTALL_GMP} = true ]; then \
 | 
				
			||||||
    # Install the GMP extension
 | 
					    # Install the GMP extension
 | 
				
			||||||
	apt-get update -yqq && \
 | 
					 | 
				
			||||||
	apt-get install -y libgmp-dev && \
 | 
						apt-get install -y libgmp-dev && \
 | 
				
			||||||
    docker-php-ext-install gmp \
 | 
					    docker-php-ext-install gmp \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP Memcached:
 | 
					# PHP Memcached:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_MEMCACHED=false
 | 
					ARG INSTALL_MEMCACHED=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
					RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
				
			||||||
    # Install the php memcached extension
 | 
					    # Install the php memcached extension
 | 
				
			||||||
    curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
 | 
					    curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
 | 
				
			||||||
@@ -203,30 +214,30 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
				
			|||||||
    && docker-php-ext-enable memcached \
 | 
					    && docker-php-ext-enable memcached \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Exif:
 | 
					# Exif:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_EXIF=false
 | 
					ARG INSTALL_EXIF=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
 | 
					RUN if [ ${INSTALL_EXIF} = true ]; then \
 | 
				
			||||||
    # Enable Exif PHP extentions requirements
 | 
					    # Enable Exif PHP extentions requirements
 | 
				
			||||||
    docker-php-ext-install exif \
 | 
					    docker-php-ext-install exif \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP Aerospike:
 | 
					# PHP Aerospike:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					ARG INSTALL_AEROSPIKE=false
 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					    # Fix dependencies for PHPUnit within aerospike extension
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					    apt-get -y install sudo wget && \
 | 
				
			||||||
    # Install the php aerospike extension (using 7.2.0-in-progress branch until support for 7.2 on master)
 | 
					    # Install the php aerospike extension
 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz" \
 | 
					    curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					    && mkdir -p aerospike-client-php \
 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
				
			||||||
    && ( \
 | 
					    && ( \
 | 
				
			||||||
@@ -239,11 +250,12 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
				
			|||||||
    && docker-php-ext-enable aerospike \
 | 
					    && docker-php-ext-enable aerospike \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Opcache:
 | 
					# Opcache:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_OPCACHE=false
 | 
					ARG INSTALL_OPCACHE=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
					RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
				
			||||||
    docker-php-ext-install opcache \
 | 
					    docker-php-ext-install opcache \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
@@ -251,29 +263,32 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
				
			|||||||
# Copy opcache configration
 | 
					# Copy opcache configration
 | 
				
			||||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
 | 
					COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Mysqli Modifications:
 | 
					# Mysqli Modifications:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_MYSQLI=false
 | 
					ARG INSTALL_MYSQLI=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
 | 
					RUN if [ ${INSTALL_MYSQLI} = true ]; then \
 | 
				
			||||||
    docker-php-ext-install mysqli \
 | 
					    docker-php-ext-install mysqli \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Tokenizer Modifications:
 | 
					# Tokenizer Modifications:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_TOKENIZER=false
 | 
					ARG INSTALL_TOKENIZER=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
 | 
					RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
 | 
				
			||||||
    docker-php-ext-install tokenizer \
 | 
					    docker-php-ext-install tokenizer \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Human Language and Character Encoding Support:
 | 
					# Human Language and Character Encoding Support:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_INTL=false
 | 
					ARG INSTALL_INTL=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
					RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
				
			||||||
    # Install intl and requirements
 | 
					    # Install intl and requirements
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					    apt-get update -yqq && \
 | 
				
			||||||
@@ -282,44 +297,44 @@ RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
				
			|||||||
    docker-php-ext-install intl \
 | 
					    docker-php-ext-install intl \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# GHOSTSCRIPT:
 | 
					# GHOSTSCRIPT:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_GHOSTSCRIPT=false
 | 
					ARG INSTALL_GHOSTSCRIPT=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
 | 
					RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
 | 
				
			||||||
    # Install the ghostscript extension
 | 
					    # Install the ghostscript extension
 | 
				
			||||||
    # for PDF editing
 | 
					    # for PDF editing
 | 
				
			||||||
    apt-get update -yqq \
 | 
					    apt-get install -y \
 | 
				
			||||||
    && apt-get install -y \
 | 
					 | 
				
			||||||
    poppler-utils \
 | 
					    poppler-utils \
 | 
				
			||||||
    ghostscript \
 | 
					    ghostscript \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# LDAP:
 | 
					# LDAP:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					ARG INSTALL_LDAP=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					    apt-get install -y libldap2-dev && \
 | 
				
			||||||
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
 | 
					    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
 | 
				
			||||||
    docker-php-ext-install ldap \
 | 
					    docker-php-ext-install ldap \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# SQL SERVER:
 | 
					# SQL SERVER:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					ARG INSTALL_MSSQL=false
 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					
 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
				
			||||||
    #####################################
 | 
					    ###########################################################################
 | 
				
			||||||
    # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
 | 
					    # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
 | 
				
			||||||
    #####################################
 | 
					    ###########################################################################
 | 
				
			||||||
    # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
 | 
					    # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
 | 
				
			||||||
    apt-get update -yqq \
 | 
					    apt-get install -y apt-transport-https gnupg \
 | 
				
			||||||
    && apt-get install -y apt-transport-https gnupg \
 | 
					 | 
				
			||||||
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
 | 
					    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
 | 
				
			||||||
    && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
 | 
					    && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
 | 
				
			||||||
    && apt-get update -yqq \
 | 
					    && apt-get update -yqq \
 | 
				
			||||||
@@ -334,48 +349,52 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
				
			|||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					    && php -m | grep -q 'sqlsrv' \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Image optimizers:
 | 
					# Image optimizers:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
 | 
					    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# ImageMagick:
 | 
					# ImageMagick:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					ARG INSTALL_IMAGEMAGICK=false
 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
				
			||||||
    apt-get update -y && \
 | 
					 | 
				
			||||||
    apt-get install -y libmagickwand-dev imagemagick && \
 | 
					    apt-get install -y libmagickwand-dev imagemagick && \
 | 
				
			||||||
    pecl install imagick && \
 | 
					    pecl install imagick && \
 | 
				
			||||||
    docker-php-ext-enable imagick \
 | 
					    docker-php-ext-enable imagick \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# IMAP:
 | 
					# IMAP:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					ARG INSTALL_IMAP=false
 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y libc-client-dev libkrb5-dev && \
 | 
					    apt-get install -y libc-client-dev libkrb5-dev && \
 | 
				
			||||||
    rm -r /var/lib/apt/lists/* && \
 | 
					    rm -r /var/lib/apt/lists/* && \
 | 
				
			||||||
    docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
 | 
					    docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
 | 
				
			||||||
    docker-php-ext-install imap \
 | 
					    docker-php-ext-install imap \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Check PHP version:
 | 
					# Check PHP version:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.2."
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
@@ -386,7 +405,12 @@ RUN php -v | head -n 1 | grep -q "PHP 7.2."
 | 
				
			|||||||
COPY ./laravel.ini /usr/local/etc/php/conf.d
 | 
					COPY ./laravel.ini /usr/local/etc/php/conf.d
 | 
				
			||||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
 | 
					COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#RUN rm -r /var/lib/apt/lists/*
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Clean up
 | 
				
			||||||
 | 
					RUN apt-get clean && \
 | 
				
			||||||
 | 
					    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
 | 
				
			||||||
 | 
					    rm /var/log/lastlog /var/log/faillog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN usermod -u 1000 www-data
 | 
					RUN usermod -u 1000 www-data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,372 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'php-fpm' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/php-fpm
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/php-fpm/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/php-fpm:2.0-56
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Mandatory Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
 | 
					 | 
				
			||||||
# are installed on the base image 'laradock/php-fpm' image. If you want
 | 
					 | 
				
			||||||
# to add more Software's or remove existing one, you need to edit the
 | 
					 | 
				
			||||||
# base image (https://github.com/Laradock/php-fpm).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_ZIP_ARCHIVE=true
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the soap extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install libxml2-dev php-soap && \
 | 
					 | 
				
			||||||
    docker-php-ext-install soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    docker-php-ext-install pgsql \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql clint
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the xdebug extension
 | 
					 | 
				
			||||||
    # pecl install xdebug && docker-php-ext-enable xdebug \
 | 
					 | 
				
			||||||
    # workaround for https://github.com/docker-library/php/issues/133
 | 
					 | 
				
			||||||
    #     - Xdebug breaks on access to class static property
 | 
					 | 
				
			||||||
    apt-get install -y php5-xdebug && \
 | 
					 | 
				
			||||||
	echo "zend_extension=/usr/lib/php5/20131226/xdebug.so" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy xdebug configration for remote debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 | 
					 | 
				
			||||||
    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
 | 
					 | 
				
			||||||
    && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
 | 
					 | 
				
			||||||
    && mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
 | 
					 | 
				
			||||||
    && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 5
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis Extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl install -o -f redis \
 | 
					 | 
				
			||||||
    &&  rm -rf /tmp/pear \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 5
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl install swoole-2.0.11 \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable swoole \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl install mongodb && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable mongodb \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    # Install the amqp extension
 | 
					 | 
				
			||||||
    pecl install amqp && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable amqp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ZipArchive:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_ZIP_ARCHIVE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the zip extension
 | 
					 | 
				
			||||||
    docker-php-ext-install zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# bcmath:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BCMATH=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the bcmath extension
 | 
					 | 
				
			||||||
    docker-php-ext-install bcmath \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GMP (GNU Multiple Precision):
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GMP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GMP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the GMP extension
 | 
					 | 
				
			||||||
	apt-get update -yqq && \
 | 
					 | 
				
			||||||
	apt-get install -y libgmp-dev && \
 | 
					 | 
				
			||||||
	ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \
 | 
					 | 
				
			||||||
    docker-php-ext-install gmp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Memcached:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MEMCACHED=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php memcached extension
 | 
					 | 
				
			||||||
    pecl install memcached-2.2.0 && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable memcached \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Exif:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_EXIF=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
 | 
					 | 
				
			||||||
    # Enable Exif PHP extentions requirements
 | 
					 | 
				
			||||||
    docker-php-ext-install exif \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src/aerospike \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable aerospike \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Opcache:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_OPCACHE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install opcache \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy opcache configration
 | 
					 | 
				
			||||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Mysqli Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MYSQLI=false
 | 
					 | 
				
			||||||
# MySQL extenstion is available for Php5.6 and lower only
 | 
					 | 
				
			||||||
COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install mysql && \
 | 
					 | 
				
			||||||
    docker-php-ext-install mysqli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Tokenizer Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_TOKENIZER=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install tokenizer \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Human Language and Character Encoding Support:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_INTL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install intl and requirements
 | 
					 | 
				
			||||||
    apt-get install -y zlib1g-dev libicu-dev g++ && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure intl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install intl \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GHOSTSCRIPT:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GHOSTSCRIPT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the ghostscript extension for PDF editing
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y poppler-utils ghostscript \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
 | 
					 | 
				
			||||||
    docker-php-ext-install ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get -y install php5-sybase freetds-bin \
 | 
					 | 
				
			||||||
    && cp /usr/lib/php5/20131226/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable pdo_dblib mssql \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'mssql' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -y && \
 | 
					 | 
				
			||||||
    apt-get install -y libmagickwand-dev imagemagick && \
 | 
					 | 
				
			||||||
    pecl install imagick && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y libc-client-dev libkrb5-dev && \
 | 
					 | 
				
			||||||
    rm -r /var/lib/apt/lists/* && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 5.6."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./laravel.ini /usr/local/etc/php/conf.d
 | 
					 | 
				
			||||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#RUN rm -r /var/lib/apt/lists/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN usermod -u 1000 www-data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["php-fpm"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 9000
 | 
					 | 
				
			||||||
@@ -1,394 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'php-fpm' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/php-fpm
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/php-fpm/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/php-fpm:2.0-70
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Mandatory Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
 | 
					 | 
				
			||||||
# are installed on the base image 'laradock/php-fpm' image. If you want
 | 
					 | 
				
			||||||
# to add more Software's or remove existing one, you need to edit the
 | 
					 | 
				
			||||||
# base image (https://github.com/Laradock/php-fpm).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_ZIP_ARCHIVE=true
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the soap extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install libxml2-dev php-soap && \
 | 
					 | 
				
			||||||
    docker-php-ext-install soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    docker-php-ext-install pgsql \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql client
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the xdebug extension
 | 
					 | 
				
			||||||
    pecl install xdebug && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable xdebug \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy xdebug configration for remote debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 | 
					 | 
				
			||||||
    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
 | 
					 | 
				
			||||||
    && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
 | 
					 | 
				
			||||||
    && mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
 | 
					 | 
				
			||||||
    && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis Extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl install -o -f redis \
 | 
					 | 
				
			||||||
    &&  rm -rf /tmp/pear \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl install swoole \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable swoole \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl install mongodb && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable mongodb \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    # Install the amqp extension
 | 
					 | 
				
			||||||
    pecl install amqp && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable amqp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ZipArchive:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_ZIP_ARCHIVE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the zip extension
 | 
					 | 
				
			||||||
    docker-php-ext-install zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# bcmath:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BCMATH=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the bcmath extension
 | 
					 | 
				
			||||||
    docker-php-ext-install bcmath \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GMP (GNU Multiple Precision):
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GMP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GMP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the GMP extension
 | 
					 | 
				
			||||||
	apt-get update -yqq && \
 | 
					 | 
				
			||||||
	apt-get install -y libgmp-dev && \ 
 | 
					 | 
				
			||||||
    docker-php-ext-install gmp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Memcached:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MEMCACHED=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php memcached extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p memcached \
 | 
					 | 
				
			||||||
    && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd memcached \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./configure \
 | 
					 | 
				
			||||||
        && make -j$(nproc) \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm -r memcached \
 | 
					 | 
				
			||||||
    && rm /tmp/memcached.tar.gz \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable memcached \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Exif:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_EXIF=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
 | 
					 | 
				
			||||||
    # Enable Exif PHP extentions requirements
 | 
					 | 
				
			||||||
    docker-php-ext-install exif \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable aerospike \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Opcache:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_OPCACHE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install opcache \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy opcache configration
 | 
					 | 
				
			||||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Mysqli Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MYSQLI=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install mysqli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Tokenizer Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_TOKENIZER=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install tokenizer \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Human Language and Character Encoding Support:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_INTL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install intl and requirements
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y zlib1g-dev libicu-dev g++ && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure intl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install intl \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GHOSTSCRIPT:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GHOSTSCRIPT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the ghostscript extension
 | 
					 | 
				
			||||||
    # for PDF editing
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y \
 | 
					 | 
				
			||||||
    poppler-utils \
 | 
					 | 
				
			||||||
    ghostscript \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
 | 
					 | 
				
			||||||
    docker-php-ext-install ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y apt-transport-https \
 | 
					 | 
				
			||||||
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
 | 
					 | 
				
			||||||
    && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
 | 
					 | 
				
			||||||
    && apt-get update -yqq \
 | 
					 | 
				
			||||||
    # Install Dependencies
 | 
					 | 
				
			||||||
    && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
 | 
					 | 
				
			||||||
    && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
 | 
					 | 
				
			||||||
    && locale-gen \
 | 
					 | 
				
			||||||
    # Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
 | 
					 | 
				
			||||||
    && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable pdo_sqlsrv sqlsrv \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'pdo_sqlsrv' \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -y && \
 | 
					 | 
				
			||||||
    apt-get install -y libmagickwand-dev imagemagick && \ 
 | 
					 | 
				
			||||||
    pecl install imagick && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y libc-client-dev libkrb5-dev && \
 | 
					 | 
				
			||||||
    rm -r /var/lib/apt/lists/* && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.0."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./laravel.ini /usr/local/etc/php/conf.d/
 | 
					 | 
				
			||||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#RUN rm -r /var/lib/apt/lists/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN usermod -u 1000 www-data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["php-fpm"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 9000
 | 
					 | 
				
			||||||
@@ -1,394 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'php-fpm' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/php-fpm
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/php-fpm/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/php-fpm:2.0-71
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Mandatory Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
 | 
					 | 
				
			||||||
# are installed on the base image 'laradock/php-fpm' image. If you want
 | 
					 | 
				
			||||||
# to add more Software's or remove existing one, you need to edit the
 | 
					 | 
				
			||||||
# base image (https://github.com/Laradock/php-fpm).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_ZIP_ARCHIVE=true
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the soap extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install libxml2-dev php-soap && \
 | 
					 | 
				
			||||||
    docker-php-ext-install soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    docker-php-ext-install pgsql \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql client
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the xdebug extension
 | 
					 | 
				
			||||||
    pecl install xdebug && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable xdebug \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy xdebug configuration for remote debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
 | 
					 | 
				
			||||||
    && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
 | 
					 | 
				
			||||||
    && tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
 | 
					 | 
				
			||||||
    && mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
 | 
					 | 
				
			||||||
    && printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7.0
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis Extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl install -o -f redis \
 | 
					 | 
				
			||||||
    &&  rm -rf /tmp/pear \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl install swoole \
 | 
					 | 
				
			||||||
    &&  docker-php-ext-enable swoole \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl install mongodb && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable mongodb \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    # Install the amqp extension
 | 
					 | 
				
			||||||
    pecl install amqp && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable amqp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ZipArchive:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_ZIP_ARCHIVE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the zip extension
 | 
					 | 
				
			||||||
    docker-php-ext-install zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# bcmath:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BCMATH=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the bcmath extension
 | 
					 | 
				
			||||||
    docker-php-ext-install bcmath \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GMP (GNU Multiple Precision):
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GMP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GMP} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the GMP extension
 | 
					 | 
				
			||||||
	apt-get update -yqq && \
 | 
					 | 
				
			||||||
	apt-get install -y libgmp-dev && \ 
 | 
					 | 
				
			||||||
    docker-php-ext-install gmp \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Memcached:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MEMCACHED=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php memcached extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p memcached \
 | 
					 | 
				
			||||||
    && tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd memcached \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./configure \
 | 
					 | 
				
			||||||
        && make -j$(nproc) \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm -r memcached \
 | 
					 | 
				
			||||||
    && rm /tmp/memcached.tar.gz \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable memcached \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Exif:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_EXIF=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
 | 
					 | 
				
			||||||
    # Enable Exif PHP extentions requirements
 | 
					 | 
				
			||||||
    docker-php-ext-install exif \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable aerospike \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Opcache:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_OPCACHE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install opcache \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy opcache configration
 | 
					 | 
				
			||||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Mysqli Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_MYSQLI=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install mysqli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Tokenizer Modifications:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_TOKENIZER=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
 | 
					 | 
				
			||||||
    docker-php-ext-install tokenizer \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Human Language and Character Encoding Support:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_INTL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_INTL} = true ]; then \
 | 
					 | 
				
			||||||
    # Install intl and requirements
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y zlib1g-dev libicu-dev g++ && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure intl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install intl \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# GHOSTSCRIPT:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_GHOSTSCRIPT=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the ghostscript extension
 | 
					 | 
				
			||||||
    # for PDF editing
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y \
 | 
					 | 
				
			||||||
    poppler-utils \
 | 
					 | 
				
			||||||
    ghostscript \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
 | 
					 | 
				
			||||||
    docker-php-ext-install ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    # Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    # Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y apt-transport-https \
 | 
					 | 
				
			||||||
    && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
 | 
					 | 
				
			||||||
    && curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
 | 
					 | 
				
			||||||
    && apt-get update -yqq \
 | 
					 | 
				
			||||||
    # Install Dependencies
 | 
					 | 
				
			||||||
    && ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
 | 
					 | 
				
			||||||
    && echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
 | 
					 | 
				
			||||||
    && locale-gen \
 | 
					 | 
				
			||||||
    # Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
 | 
					 | 
				
			||||||
    && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
 | 
					 | 
				
			||||||
    && docker-php-ext-enable pdo_sqlsrv sqlsrv \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'pdo_sqlsrv' \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -y && \
 | 
					 | 
				
			||||||
    apt-get install -y libmagickwand-dev imagemagick && \ 
 | 
					 | 
				
			||||||
    pecl install imagick && \
 | 
					 | 
				
			||||||
    docker-php-ext-enable imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y libc-client-dev libkrb5-dev && \
 | 
					 | 
				
			||||||
    rm -r /var/lib/apt/lists/* && \
 | 
					 | 
				
			||||||
    docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
 | 
					 | 
				
			||||||
    docker-php-ext-install imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.1."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./laravel.ini /usr/local/etc/php/conf.d
 | 
					 | 
				
			||||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#RUN rm -r /var/lib/apt/lists/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN usermod -u 1000 www-data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["php-fpm"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 9000
 | 
					 | 
				
			||||||
@@ -4,7 +4,8 @@
 | 
				
			|||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM php:7.2-alpine
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					FROM php:${PHP_VERSION}-alpine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -62,7 +63,7 @@ ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c",  "/etc/supervisord.conf"]
 | 
				
			|||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.2."
 | 
					RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
@@ -1,73 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM php:7.0-alpine
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk --update add wget \
 | 
					 | 
				
			||||||
  curl \
 | 
					 | 
				
			||||||
  git \
 | 
					 | 
				
			||||||
  build-base \
 | 
					 | 
				
			||||||
  libmemcached-dev \
 | 
					 | 
				
			||||||
  libmcrypt-dev \
 | 
					 | 
				
			||||||
  libxml2-dev \
 | 
					 | 
				
			||||||
  zlib-dev \
 | 
					 | 
				
			||||||
  autoconf \
 | 
					 | 
				
			||||||
  cyrus-sasl-dev \
 | 
					 | 
				
			||||||
  libgsasl-dev \
 | 
					 | 
				
			||||||
  supervisor
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql mcrypt tokenizer xml
 | 
					 | 
				
			||||||
RUN pecl channel-update pecl.php.net && pecl install memcached && docker-php-ext-enable memcached
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install PostgreSQL drivers:
 | 
					 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					 | 
				
			||||||
    apk --update add postgresql-dev \
 | 
					 | 
				
			||||||
        && docker-php-ext-install pdo_pgsql \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN rm /var/cache/apk/* \
 | 
					 | 
				
			||||||
    && mkdir -p /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Optional Supervisord Configuration
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Modify the ./supervisor.conf file to match your App's requirements.
 | 
					 | 
				
			||||||
# Make sure you rebuild your container with every change.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY supervisord.conf /etc/supervisord.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c",  "/etc/supervisord.conf"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Optional Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# If you need to modify this image, feel free to do it right here.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
	# -- Your awesome modifications go here -- #
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Check PHP version
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.0."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /etc/supervisor/conf.d/
 | 
					 | 
				
			||||||
@@ -1,73 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM php:7.1-alpine
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk --update add wget \
 | 
					 | 
				
			||||||
  curl \
 | 
					 | 
				
			||||||
  git \
 | 
					 | 
				
			||||||
  build-base \
 | 
					 | 
				
			||||||
  libmemcached-dev \
 | 
					 | 
				
			||||||
  libmcrypt-dev \
 | 
					 | 
				
			||||||
  libxml2-dev \
 | 
					 | 
				
			||||||
  zlib-dev \
 | 
					 | 
				
			||||||
  autoconf \
 | 
					 | 
				
			||||||
  cyrus-sasl-dev \
 | 
					 | 
				
			||||||
  libgsasl-dev \
 | 
					 | 
				
			||||||
  supervisor
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql mcrypt tokenizer xml
 | 
					 | 
				
			||||||
RUN pecl channel-update pecl.php.net && pecl install memcached && docker-php-ext-enable memcached
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install PostgreSQL drivers:
 | 
					 | 
				
			||||||
ARG INSTALL_PGSQL=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
 | 
					 | 
				
			||||||
    apk --update add postgresql-dev \
 | 
					 | 
				
			||||||
        && docker-php-ext-install pdo_pgsql \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN rm /var/cache/apk/* \
 | 
					 | 
				
			||||||
    && mkdir -p /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Optional Supervisord Configuration
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Modify the ./supervisor.conf file to match your App's requirements.
 | 
					 | 
				
			||||||
# Make sure you rebuild your container with every change.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY supervisord.conf /etc/supervisord.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c",  "/etc/supervisord.conf"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Optional Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# If you need to modify this image, feel free to do it right here.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
    # -- Your awesome modifications go here -- #
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Check PHP version
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.1."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /etc/supervisor/conf.d/
 | 
					 | 
				
			||||||
@@ -12,19 +12,35 @@
 | 
				
			|||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					# Note: Base Image name format {image-tag}-{php-version}
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM laradock/workspace:2.0-71
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM laradock/workspace:2.2-${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
 | 
					# Start as root
 | 
				
			||||||
RUN rm /var/log/lastlog /var/log/faillog
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# Laradock non-root user:
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add a non-root user to prevent files being created with root permissions on host machine.
 | 
				
			||||||
 | 
					ARG PUID=1000
 | 
				
			||||||
 | 
					ENV PUID ${PUID}
 | 
				
			||||||
 | 
					ARG PGID=1000
 | 
				
			||||||
 | 
					ENV PGID ${PGID}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN groupadd -g ${PGID} laradock && \
 | 
				
			||||||
 | 
					    useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
 | 
				
			||||||
 | 
					    usermod -p "*" laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
# Mandatory Software's Installation
 | 
					# Mandatory Software's Installation
 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Mandatory Software's such as ("php7.1-cli", "git", "vim", ....) are
 | 
					# Mandatory Software's such as ("php-cli", "git", "vim", ....) are
 | 
				
			||||||
# installed on the base image 'laradock/workspace' image. If you want
 | 
					# 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
 | 
					# to add more Software's or remove existing one, you need to edit the
 | 
				
			||||||
# base image (https://github.com/Laradock/workspace).
 | 
					# base image (https://github.com/Laradock/workspace).
 | 
				
			||||||
@@ -42,106 +58,19 @@ RUN rm /var/log/lastlog /var/log/faillog
 | 
				
			|||||||
#   - ...
 | 
					#   - ...
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Non-Root User:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
 | 
					 | 
				
			||||||
ARG PUID=1000
 | 
					 | 
				
			||||||
ARG PGID=1000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV PUID ${PUID}
 | 
					 | 
				
			||||||
ENV PGID ${PGID}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN groupadd -g ${PGID} laradock && \
 | 
					 | 
				
			||||||
    useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
 | 
					 | 
				
			||||||
    usermod -p "*" laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
  # Install the PHP SOAP extension
 | 
					 | 
				
			||||||
  add-apt-repository -y ppa:ondrej/php && \
 | 
					 | 
				
			||||||
  apt-get update -yqq && \
 | 
					 | 
				
			||||||
  apt-get -y install libxml2-dev php7.1-soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.1-ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.1-imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Set Timezone
 | 
					# Set Timezone
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG TZ=UTC
 | 
					ARG TZ=UTC
 | 
				
			||||||
ENV TZ ${TZ}
 | 
					ENV TZ ${TZ}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
					RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Composer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add the composer.json
 | 
					 | 
				
			||||||
COPY ./composer.json /home/laradock/.composer/composer.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make sure that ~/.composer belongs to laradock
 | 
					 | 
				
			||||||
RUN chown -R laradock:laradock /home/laradock/.composer
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if global install need to be ran
 | 
					 | 
				
			||||||
ARG COMPOSER_GLOBAL_INSTALL=false
 | 
					 | 
				
			||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
					 | 
				
			||||||
    # run the install
 | 
					 | 
				
			||||||
    composer global install \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Crontab
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./crontab /etc/cron.d
 | 
					 | 
				
			||||||
RUN chmod -R 644 /etc/cron.d
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# User Aliases
 | 
					# User Aliases
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY ./aliases.sh /root/aliases.sh
 | 
					COPY ./aliases.sh /root/aliases.sh
 | 
				
			||||||
@@ -162,31 +91,124 @@ RUN echo "" >> ~/.bashrc && \
 | 
				
			|||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
						echo "" >> ~/.bashrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# Composer:
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add the composer.json
 | 
				
			||||||
 | 
					COPY ./composer.json /home/laradock/.composer/composer.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make sure that ~/.composer belongs to laradock
 | 
				
			||||||
 | 
					RUN chown -R laradock:laradock /home/laradock/.composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if global install need to be ran
 | 
				
			||||||
 | 
					ARG COMPOSER_GLOBAL_INSTALL=false
 | 
				
			||||||
 | 
					ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
				
			||||||
 | 
					    # run the install
 | 
				
			||||||
 | 
					    composer global install \
 | 
				
			||||||
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG COMPOSER_REPO_PACKAGIST
 | 
				
			||||||
 | 
					ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
				
			||||||
 | 
					    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
				
			||||||
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Export composer vendor path
 | 
				
			||||||
 | 
					RUN echo "" >> ~/.bashrc && \
 | 
				
			||||||
 | 
					    echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# Non-root user : PHPUnit path
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
 | 
				
			||||||
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN echo "" >> ~/.bashrc && \
 | 
				
			||||||
 | 
					    echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# Crontab
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY ./crontab /etc/cron.d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN chmod -R 644 /etc/cron.d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# SOAP:
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG INSTALL_SOAP=false
 | 
				
			||||||
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
				
			||||||
 | 
					  # Install the PHP SOAP extension
 | 
				
			||||||
 | 
					  apt-get -y install libxml2-dev php${PHP_VERSION}-soap \
 | 
				
			||||||
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# LDAP:
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG INSTALL_LDAP=false
 | 
				
			||||||
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
				
			||||||
 | 
					    apt-get install -y libldap2-dev && \
 | 
				
			||||||
 | 
					    apt-get install -y php${PHP_VERSION}-ldap \
 | 
				
			||||||
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					# IMAP:
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG INSTALL_IMAP=false
 | 
				
			||||||
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
				
			||||||
 | 
					    apt-get install -y php${PHP_VERSION}-imap \
 | 
				
			||||||
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
# xDebug:
 | 
					# xDebug:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					ARG INSTALL_XDEBUG=false
 | 
				
			||||||
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
				
			||||||
    # Load the xdebug extension only with phpunit commands
 | 
					    # Load the xdebug extension only with phpunit commands
 | 
				
			||||||
    apt-get update && \
 | 
					    apt-get install -y --force-yes php${PHP_VERSION}-xdebug && \
 | 
				
			||||||
    apt-get install -y --force-yes php7.1-xdebug && \
 | 
					    sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
 | 
				
			||||||
    sed -i 's/^;//g' /etc/php/7.1/cli/conf.d/20-xdebug.ini && \
 | 
					 | 
				
			||||||
    echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
 | 
					    echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
# ADD for REMOTE debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /etc/php/7.1/cli/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					# ADD for REMOTE debugging
 | 
				
			||||||
 | 
					COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###########################################################################
 | 
				
			||||||
# Blackfire:
 | 
					# Blackfire:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					ARG INSTALL_BLACKFIRE=false
 | 
				
			||||||
ARG BLACKFIRE_CLIENT_ID
 | 
					ARG BLACKFIRE_CLIENT_ID
 | 
				
			||||||
ARG BLACKFIRE_CLIENT_TOKEN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
 | 
					ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
 | 
				
			||||||
 | 
					ARG BLACKFIRE_CLIENT_TOKEN
 | 
				
			||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
 | 
					ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
				
			||||||
@@ -196,11 +218,11 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
				
			|||||||
    apt-get install blackfire-agent \
 | 
					    apt-get install blackfire-agent \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# ssh:
 | 
					# ssh:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_WORKSPACE_SSH=false
 | 
					ARG INSTALL_WORKSPACE_SSH=false
 | 
				
			||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY insecure_id_rsa /tmp/id_rsa
 | 
					COPY insecure_id_rsa /tmp/id_rsa
 | 
				
			||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
 | 
					COPY insecure_id_rsa.pub /tmp/id_rsa.pub
 | 
				
			||||||
@@ -217,82 +239,87 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
 | 
				
			|||||||
    && chown -R laradock:laradock /home/laradock/.ssh \
 | 
					    && chown -R laradock:laradock /home/laradock/.ssh \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# MongoDB:
 | 
					# MongoDB:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check if Mongo needs to be installed
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					ARG INSTALL_MONGO=false
 | 
				
			||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
				
			||||||
    # Install the mongodb extension
 | 
					    # Install the mongodb extension
 | 
				
			||||||
    pecl -q install mongodb && \
 | 
					    pecl -q install mongodb && \
 | 
				
			||||||
    echo "extension=mongodb.so" >> /etc/php/7.1/mods-available/mongodb.ini && \
 | 
					    echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
 | 
				
			||||||
    ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \
 | 
					    ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# AMQP:
 | 
					# AMQP:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					ARG INSTALL_AMQP=false
 | 
				
			||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					    apt-get install librabbitmq-dev -y && \
 | 
				
			||||||
    pecl -q install amqp && \
 | 
					    pecl -q install amqp && \
 | 
				
			||||||
    echo "extension=amqp.so" >> /etc/php/7.1/mods-available/amqp.ini && \
 | 
					    echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
 | 
				
			||||||
    ln -s /etc/php/7.1/mods-available/amqp.ini /etc/php/7.1/cli/conf.d/30-amqp.ini \
 | 
					    ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7.1
 | 
					# PHP REDIS EXTENSION
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					ARG INSTALL_PHPREDIS=false
 | 
				
			||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
				
			||||||
    # Install Php Redis extension
 | 
					    # Install Php Redis extension
 | 
				
			||||||
    printf "\n" | pecl -q install -o -f redis && \
 | 
					    printf "\n" | pecl -q install -o -f redis && \
 | 
				
			||||||
    echo "extension=redis.so" >> /etc/php/7.1/mods-available/redis.ini && \
 | 
					    echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
 | 
				
			||||||
    phpenmod redis \
 | 
					    phpenmod redis \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					# Swoole EXTENSION
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					ARG INSTALL_SWOOLE=false
 | 
				
			||||||
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					    # Install Php Swoole Extension
 | 
				
			||||||
    pecl -q install swoole && \
 | 
					    pecl -q install swoole && \
 | 
				
			||||||
    echo "extension=swoole.so" >> /etc/php/7.1/mods-available/swoole.ini && \
 | 
					    echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
 | 
				
			||||||
    ln -s /etc/php/7.1/mods-available/swoole.ini /etc/php/7.1/cli/conf.d/20-swoole.ini \
 | 
					    ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/cli/conf.d/20-swoole.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Drush:
 | 
					# Drush:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
ENV DRUSH_VERSION 8.1.2
 | 
					
 | 
				
			||||||
ARG INSTALL_DRUSH=false
 | 
					ARG INSTALL_DRUSH=false
 | 
				
			||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
 | 
					RUN if [ ${INSTALL_DRUSH} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					    apt-get -y install mysql-client && \
 | 
				
			||||||
    # Install Drush 8 with the phar file.
 | 
					    # Install Drush 8 with the phar file.
 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
 | 
					    curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/${DRUSH_VERSION}/drush.phar | bash && \
 | 
				
			||||||
    chmod +x /usr/local/bin/drush && \
 | 
					    chmod +x /usr/local/bin/drush && \
 | 
				
			||||||
    drush core-status \
 | 
					    drush core-status \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Drupal Console:
 | 
					# Drupal Console:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_DRUPAL_CONSOLE=false
 | 
					ARG INSTALL_DRUPAL_CONSOLE=false
 | 
				
			||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
					RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					    apt-get -y install mysql-client && \
 | 
				
			||||||
    curl https://drupalconsole.com/installer -L -o drupal.phar && \
 | 
					    curl https://drupalconsole.com/installer -L -o drupal.phar && \
 | 
				
			||||||
    mv drupal.phar /usr/local/bin/drupal && \
 | 
					    mv drupal.phar /usr/local/bin/drupal && \
 | 
				
			||||||
@@ -301,18 +328,18 @@ RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
USER laradock
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Node / NVM:
 | 
					# Node / NVM:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check if NVM needs to be installed
 | 
					# Check if NVM needs to be installed
 | 
				
			||||||
ARG NODE_VERSION=stable
 | 
					ARG NODE_VERSION=stable
 | 
				
			||||||
ENV NODE_VERSION ${NODE_VERSION}
 | 
					ENV NODE_VERSION ${NODE_VERSION}
 | 
				
			||||||
ARG INSTALL_NODE=false
 | 
					ARG INSTALL_NODE=false
 | 
				
			||||||
ENV INSTALL_NODE ${INSTALL_NODE}
 | 
					 | 
				
			||||||
ARG NPM_REGISTRY
 | 
					ARG NPM_REGISTRY
 | 
				
			||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
 | 
					ENV NPM_REGISTRY ${NPM_REGISTRY}
 | 
				
			||||||
ENV NVM_DIR /home/laradock/.nvm
 | 
					ENV NVM_DIR /home/laradock/.nvm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
				
			||||||
    # Install nvm (A Node Version Manager)
 | 
					    # Install nvm (A Node Version Manager)
 | 
				
			||||||
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
 | 
					    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
 | 
				
			||||||
@@ -350,14 +377,13 @@ RUN if [ ${NPM_REGISTRY} ]; then \
 | 
				
			|||||||
    . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
 | 
					    . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# YARN:
 | 
					# YARN:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER laradock
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_YARN=false
 | 
					ARG INSTALL_YARN=false
 | 
				
			||||||
ENV INSTALL_YARN ${INSTALL_YARN}
 | 
					 | 
				
			||||||
ARG YARN_VERSION=latest
 | 
					ARG YARN_VERSION=latest
 | 
				
			||||||
ENV YARN_VERSION ${YARN_VERSION}
 | 
					ENV YARN_VERSION ${YARN_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -381,20 +407,20 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
				
			|||||||
    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
 | 
					    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP Aerospike:
 | 
					# PHP Aerospike:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					ARG INSTALL_AEROSPIKE=false
 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					    # Fix dependencies for PHPUnit within aerospike extension
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					    apt-get -y install sudo wget && \
 | 
				
			||||||
    # Install the php aerospike extension
 | 
					    # Install the php aerospike extension
 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
 | 
					    curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					    && mkdir -p aerospike-client-php \
 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
				
			||||||
    && ( \
 | 
					    && ( \
 | 
				
			||||||
@@ -404,54 +430,46 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
				
			|||||||
        && make install \
 | 
					        && make install \
 | 
				
			||||||
    ) \
 | 
					    ) \
 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					    && rm /tmp/aerospike-client-php.tar.gz \
 | 
				
			||||||
    && echo 'extension=aerospike.so' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
 | 
					    && echo 'extension=aerospike.so' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
 | 
				
			||||||
    && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
 | 
					    && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
 | 
				
			||||||
    && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
 | 
					    && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PHP V8JS:
 | 
					# PHP V8JS:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_V8JS=false
 | 
					ARG INSTALL_V8JS=false
 | 
				
			||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
 | 
					RUN if [ ${INSTALL_V8JS} = true ]; then \
 | 
				
			||||||
    # Install the php V8JS extension
 | 
					    # Install the php V8JS extension
 | 
				
			||||||
    add-apt-repository -y ppa:pinepain/libv8-archived \
 | 
					    add-apt-repository -y ppa:pinepain/libv8-archived \
 | 
				
			||||||
    && apt-get update -yqq \
 | 
					    && apt-get update -yqq \
 | 
				
			||||||
    && apt-get install -y php7.1-xml php7.1-dev php-pear libv8-5.4 \
 | 
					    && apt-get install -y php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
 | 
				
			||||||
    && pecl install v8js \
 | 
					    && pecl install v8js \
 | 
				
			||||||
    && echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
 | 
					    && echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Non-root user : PHPUnit path
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Envoy:
 | 
					# Laravel Envoy:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER laradock
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_LARAVEL_ENVOY=false
 | 
					ARG INSTALL_LARAVEL_ENVOY=false
 | 
				
			||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
 | 
					RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
 | 
				
			||||||
    # Install the Laravel Envoy
 | 
					    # Install the Laravel Envoy
 | 
				
			||||||
    composer global require "laravel/envoy=~1.0" \
 | 
					    composer global require "laravel/envoy=~1.0" \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Laravel Installer:
 | 
					# Laravel Installer:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					ARG COMPOSER_REPO_PACKAGIST
 | 
				
			||||||
@@ -462,24 +480,19 @@ RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
				
			|||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_LARAVEL_INSTALLER=false
 | 
					ARG INSTALL_LARAVEL_INSTALLER=false
 | 
				
			||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
 | 
					RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
 | 
				
			||||||
    # Install the Laravel Installer
 | 
					    # Install the Laravel Installer
 | 
				
			||||||
	echo "" >> ~/.bashrc && \
 | 
						composer global require "laravel/installer" \
 | 
				
			||||||
	echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
	&& composer global require "laravel/installer" \
 | 
					 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER laradock
 | 
					###########################################################################
 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Deployer:
 | 
					# Deployer:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_DEPLOYER=false
 | 
					ARG INSTALL_DEPLOYER=false
 | 
				
			||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
					RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
				
			||||||
    # Install the Deployer
 | 
					    # Install the Deployer
 | 
				
			||||||
@@ -490,26 +503,25 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
				
			|||||||
    chmod +x /usr/local/bin/dep \
 | 
					    chmod +x /usr/local/bin/dep \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Prestissimo:
 | 
					# Prestissimo:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
USER laradock
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PRESTISSIMO=false
 | 
					ARG INSTALL_PRESTISSIMO=false
 | 
				
			||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
 | 
					RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
 | 
				
			||||||
    # Install Prestissimo
 | 
					    # Install Prestissimo
 | 
				
			||||||
    composer global require "hirak/prestissimo" \
 | 
					    composer global require "hirak/prestissimo" \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Linuxbrew:
 | 
					# Linuxbrew:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_LINUXBREW=false
 | 
					ARG INSTALL_LINUXBREW=false
 | 
				
			||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
					RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
				
			||||||
    # Preparation
 | 
					    # Preparation
 | 
				
			||||||
@@ -531,20 +543,21 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
				
			|||||||
    echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
 | 
					    echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# SQL SERVER:
 | 
					# SQL SERVER:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					ARG INSTALL_MSSQL=false
 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
				
			||||||
    #####################################
 | 
					    ###########################################################################
 | 
				
			||||||
    #  The following steps were taken from
 | 
					    #  The following steps were taken from
 | 
				
			||||||
    #  https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
 | 
					    #  https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
 | 
				
			||||||
    #####################################
 | 
					    ###########################################################################
 | 
				
			||||||
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
 | 
					    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
 | 
				
			||||||
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
 | 
					    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
 | 
				
			||||||
    apt-get update && \
 | 
					    apt-get update -yqq && \
 | 
				
			||||||
    ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
 | 
					    ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
 | 
				
			||||||
    apt-get install -yqq unixodbc-dev-utf16 && \
 | 
					    apt-get install -yqq unixodbc-dev-utf16 && \
 | 
				
			||||||
    ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
 | 
					    ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
 | 
				
			||||||
@@ -562,32 +575,35 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
				
			|||||||
    apt-get install -y locales && \
 | 
					    apt-get install -y locales && \
 | 
				
			||||||
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
					    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
				
			||||||
    locale-gen && \
 | 
					    locale-gen && \
 | 
				
			||||||
    echo "extension=sqlsrv.so"     > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini && \
 | 
					    echo "extension=sqlsrv.so"     > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
 | 
				
			||||||
    echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
 | 
					    echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
 | 
				
			||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					    && php -m | grep -q 'sqlsrv' \
 | 
				
			||||||
    && php -m | grep -q 'pdo_sqlsrv' \
 | 
					    && php -m | grep -q 'pdo_sqlsrv' \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Minio:
 | 
					# Minio:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
ARG INSTALL_MC=false
 | 
					 | 
				
			||||||
ENV INSTALL_MC ${INSTALL_MC}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY mc/config.json /root/.mc/config.json
 | 
					COPY mc/config.json /root/.mc/config.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG INSTALL_MC=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_MC} = true ]; then\
 | 
					RUN if [ ${INSTALL_MC} = true ]; then\
 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
 | 
					    curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
 | 
				
			||||||
    chmod +x /usr/local/bin/mc \
 | 
					    chmod +x /usr/local/bin/mc \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Image optimizers:
 | 
					# Image optimizers:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
 | 
					    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
 | 
				
			||||||
    if [ ${INSTALL_NODE} = true ]; then \
 | 
					    if [ ${INSTALL_NODE} = true ]; then \
 | 
				
			||||||
@@ -597,12 +613,14 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
USER laradock
 | 
					USER laradock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Symfony:
 | 
					# Symfony:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_SYMFONY=false
 | 
					ARG INSTALL_SYMFONY=false
 | 
				
			||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
					RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
				
			||||||
  mkdir -p /usr/local/bin \
 | 
					  mkdir -p /usr/local/bin \
 | 
				
			||||||
  && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
 | 
					  && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
 | 
				
			||||||
@@ -615,68 +633,70 @@ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
				
			|||||||
  #  && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
 | 
					  #  && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# PYTHON:
 | 
					# PYTHON:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PYTHON=false
 | 
					ARG INSTALL_PYTHON=false
 | 
				
			||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
 | 
					RUN if [ ${INSTALL_PYTHON} = true ]; then \
 | 
				
			||||||
  apt-get update \
 | 
					  apt-get -y install python python-pip python-dev build-essential  \
 | 
				
			||||||
  && apt-get -y install python python-pip python-dev build-essential  \
 | 
					 | 
				
			||||||
  && pip install --upgrade pip  \
 | 
					  && pip install --upgrade pip  \
 | 
				
			||||||
  && pip install --upgrade virtualenv \
 | 
					  && pip install --upgrade virtualenv \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# ImageMagick:
 | 
					# ImageMagick:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					ARG INSTALL_IMAGEMAGICK=false
 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq \
 | 
					    apt-get install -y --force-yes imagemagick php-imagick \
 | 
				
			||||||
    && apt-get install -y --force-yes imagemagick php-imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Terraform:
 | 
					# Terraform:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_TERRAFORM=false
 | 
					ARG INSTALL_TERRAFORM=false
 | 
				
			||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
 | 
					RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
 | 
				
			||||||
    apt-get update -yqq \
 | 
					    apt-get -y install sudo wget unzip \
 | 
				
			||||||
    && apt-get -y install sudo wget unzip \
 | 
					 | 
				
			||||||
    && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
 | 
					    && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
 | 
				
			||||||
    && unzip terraform_0.10.6_linux_amd64.zip \
 | 
					    && unzip terraform_0.10.6_linux_amd64.zip \
 | 
				
			||||||
    && mv terraform /usr/local/bin \
 | 
					    && mv terraform /usr/local/bin \
 | 
				
			||||||
    && rm terraform_0.10.6_linux_amd64.zip \
 | 
					    && rm terraform_0.10.6_linux_amd64.zip \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# pgsql client
 | 
					# pgsql client
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					ARG INSTALL_PG_CLIENT=false
 | 
				
			||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
				
			||||||
    # Install the pgsql clint
 | 
					    # Install the pgsql client
 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install postgresql-client \
 | 
					    apt-get -y install postgresql-client \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Dusk Dependencies:
 | 
					# Dusk Dependencies:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ARG CHROME_DRIVER_VERSION=stable
 | 
					ARG CHROME_DRIVER_VERSION=stable
 | 
				
			||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
 | 
					ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
 | 
				
			||||||
ARG INSTALL_DUSK_DEPS=false
 | 
					ARG INSTALL_DUSK_DEPS=false
 | 
				
			||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
 | 
					
 | 
				
			||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
					RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
				
			||||||
  add-apt-repository ppa:ondrej/php \
 | 
					  apt-get -y install zip wget unzip xdg-utils \
 | 
				
			||||||
  && apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install zip wget unzip xdg-utils \
 | 
					 | 
				
			||||||
    libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
 | 
					    libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
 | 
				
			||||||
    gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
 | 
					    gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
 | 
				
			||||||
    xfonts-base xfonts-scalable x11-apps \
 | 
					    xfonts-base xfonts-scalable x11-apps \
 | 
				
			||||||
@@ -691,11 +711,13 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
				
			|||||||
  && rm chromedriver_linux64.zip \
 | 
					  && rm chromedriver_linux64.zip \
 | 
				
			||||||
;fi
 | 
					;fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
# Check PHP version:
 | 
					# Check PHP version:
 | 
				
			||||||
#####################################
 | 
					###########################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.1."
 | 
					ARG PHP_VERSION=${PHP_VERSION}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
@@ -703,10 +725,12 @@ RUN php -v | head -n 1 | grep -q "PHP 7.1."
 | 
				
			|||||||
#--------------------------------------------------------------------------
 | 
					#--------------------------------------------------------------------------
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Clean up
 | 
					 | 
				
			||||||
USER root
 | 
					USER root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Clean up
 | 
				
			||||||
RUN apt-get clean && \
 | 
					RUN apt-get clean && \
 | 
				
			||||||
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
					    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
 | 
				
			||||||
 | 
					    rm /var/log/lastlog /var/log/faillog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set default work directory
 | 
					# Set default work directory
 | 
				
			||||||
WORKDIR /var/www
 | 
					WORKDIR /var/www
 | 
				
			||||||
@@ -1,696 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'workspace' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/workspace
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/workspace/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/workspace:2.0-56
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
 | 
					 | 
				
			||||||
RUN rm /var/log/lastlog /var/log/faillog
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Mandatory Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Mandatory Software's such as ("php5.6-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).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_NODE=false
 | 
					 | 
				
			||||||
#   - ...
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-Root User:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
 | 
					 | 
				
			||||||
ARG PUID=1000
 | 
					 | 
				
			||||||
ARG PGID=1000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV PUID ${PUID}
 | 
					 | 
				
			||||||
ENV PGID ${PGID}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN groupadd -g ${PGID} laradock && \
 | 
					 | 
				
			||||||
    useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
 | 
					 | 
				
			||||||
    usermod -p "*" laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
  # Install the PHP SOAP extension
 | 
					 | 
				
			||||||
  add-apt-repository -y ppa:ondrej/php && \
 | 
					 | 
				
			||||||
  apt-get update -yqq && \
 | 
					 | 
				
			||||||
  apt-get -y install libxml2-dev php5.6-soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    apt-get install -y php5.6-ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
  # Install the PHP IMAP extension
 | 
					 | 
				
			||||||
  add-apt-repository -y ppa:ondrej/php && \
 | 
					 | 
				
			||||||
  apt-get update -yqq && \
 | 
					 | 
				
			||||||
  apt-get -y install php5.6-imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Set Timezone
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG TZ=UTC
 | 
					 | 
				
			||||||
ENV TZ ${TZ}
 | 
					 | 
				
			||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Composer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add the composer.json
 | 
					 | 
				
			||||||
COPY ./composer.json /home/laradock/.composer/composer.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make sure that ~/.composer belongs to laradock
 | 
					 | 
				
			||||||
RUN chown -R laradock:laradock /home/laradock/.composer
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if global install need to be ran
 | 
					 | 
				
			||||||
ARG COMPOSER_GLOBAL_INSTALL=false
 | 
					 | 
				
			||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
					 | 
				
			||||||
    # run the install
 | 
					 | 
				
			||||||
    composer global install \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Export composer vendor path
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Crontab
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./crontab /etc/cron.d
 | 
					 | 
				
			||||||
RUN chmod -R 644 /etc/cron.d
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# User Aliases
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./aliases.sh /root/aliases.sh
 | 
					 | 
				
			||||||
COPY ./aliases.sh /home/laradock/aliases.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
 | 
					 | 
				
			||||||
    sed -i 's/\r//' /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    chown laradock:laradock /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					 | 
				
			||||||
    # Load the xdebug extension only with phpunit commands
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes php5.6-xdebug && \
 | 
					 | 
				
			||||||
    sed -i 's/^;//g' /etc/php/5.6/cli/conf.d/20-xdebug.ini && \
 | 
					 | 
				
			||||||
    echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
# ADD for REMOTE debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /etc/php/5.6/cli/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_ID
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_TOKEN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    curl -L https://packagecloud.io/gpg.key | apt-key add - && \
 | 
					 | 
				
			||||||
    echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install blackfire-agent \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ssh:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_WORKSPACE_SSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY insecure_id_rsa /tmp/id_rsa
 | 
					 | 
				
			||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
 | 
					 | 
				
			||||||
    rm -f /etc/service/sshd/down && \
 | 
					 | 
				
			||||||
    cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa >> /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
        && rm -f /tmp/id_rsa* \
 | 
					 | 
				
			||||||
        && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
    && chmod 400 /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
    && cp -rf /root/.ssh /home/laradock \
 | 
					 | 
				
			||||||
    && chown -R laradock:laradock /home/laradock/.ssh \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if Mongo needs to be installed
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl channel-update pecl.php.net && \
 | 
					 | 
				
			||||||
    pecl install mongodb && \
 | 
					 | 
				
			||||||
    echo "extension=mongodb.so" >> /etc/php/5.6/mods-available/mongodb.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    pecl -q install amqp && \
 | 
					 | 
				
			||||||
    echo "extension=amqp.so" >> /etc/php/5.6/mods-available/amqp.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/5.6/mods-available/amqp.ini /etc/php/5.6/cli/conf.d/30-amqp.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 5.6
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl -q install -o -f redis && \
 | 
					 | 
				
			||||||
    echo "extension=redis.so" >> /etc/php/5.6/mods-available/redis.ini && \
 | 
					 | 
				
			||||||
    phpenmod redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 5.6
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl -q install -f swoole-1.10.1 && \
 | 
					 | 
				
			||||||
    echo "extension=swoole.so" >> /etc/php/5.6/mods-available/swoole.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/5.6/mods-available/swoole.ini /etc/php/5.6/cli/conf.d/20-swoole.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drush:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ENV DRUSH_VERSION 8.1.2
 | 
					 | 
				
			||||||
ARG INSTALL_DRUSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    # Install Drush 8 with the phar file.
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drush && \
 | 
					 | 
				
			||||||
    drush core-status \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drupal Console:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_DRUPAL_CONSOLE=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    curl https://drupalconsole.com/installer -L -o drupal.phar && \
 | 
					 | 
				
			||||||
    mv drupal.phar /usr/local/bin/drupal && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drupal \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Node / NVM:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if NVM needs to be installed
 | 
					 | 
				
			||||||
ARG NODE_VERSION=stable
 | 
					 | 
				
			||||||
ENV NODE_VERSION ${NODE_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_NODE=false
 | 
					 | 
				
			||||||
ENV INSTALL_NODE ${INSTALL_NODE}
 | 
					 | 
				
			||||||
ARG NPM_REGISTRY
 | 
					 | 
				
			||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
 | 
					 | 
				
			||||||
ENV NVM_DIR /home/laradock/.nvm
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install nvm (A Node Version Manager)
 | 
					 | 
				
			||||||
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
 | 
					 | 
				
			||||||
        . $NVM_DIR/nvm.sh && \
 | 
					 | 
				
			||||||
        nvm install ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm use ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm alias ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
        npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
        ;fi && \
 | 
					 | 
				
			||||||
        npm install -g gulp bower vue-cli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Wouldn't execute when added to the RUN statement in the above block
 | 
					 | 
				
			||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add NVM binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add PATH for node
 | 
					 | 
				
			||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
    . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# YARN:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_YARN=false
 | 
					 | 
				
			||||||
ENV INSTALL_YARN ${INSTALL_YARN}
 | 
					 | 
				
			||||||
ARG YARN_VERSION=latest
 | 
					 | 
				
			||||||
ENV YARN_VERSION ${YARN_VERSION}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
 | 
					 | 
				
			||||||
    if [ ${YARN_VERSION} = "latest" ]; then \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash; \
 | 
					 | 
				
			||||||
    else \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
 | 
					 | 
				
			||||||
    fi && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add YARN binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src/aerospike \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && echo 'extension=aerospike.so' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP V8JS:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_V8JS=false
 | 
					 | 
				
			||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php V8JS extension
 | 
					 | 
				
			||||||
    add-apt-repository -y ppa:pinepain/libv8-archived \
 | 
					 | 
				
			||||||
    && apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y php5.6-xml php5.6-dev php-pear libv8-dev \
 | 
					 | 
				
			||||||
    && pecl install v8js-0.6.4 \
 | 
					 | 
				
			||||||
    && echo "extension=v8js.so" >> /etc/php/5.6/cli/php.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-root user : PHPUnit path
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Envoy:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_ENVOY=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Envoy
 | 
					 | 
				
			||||||
    composer global require "laravel/envoy=~1.0" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Installer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_INSTALLER=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Installer
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
    && composer global require "laravel/installer" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Deployer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_DEPLOYER=false
 | 
					 | 
				
			||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Deployer
 | 
					 | 
				
			||||||
    composer global require "deployer/deployer" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Prestissimo:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PRESTISSIMO=false
 | 
					 | 
				
			||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Prestissimo
 | 
					 | 
				
			||||||
    composer global require "hirak/prestissimo" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Linuxbrew:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LINUXBREW=true
 | 
					 | 
				
			||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
					 | 
				
			||||||
    # Preparation
 | 
					 | 
				
			||||||
    apt-get upgrade -y && \
 | 
					 | 
				
			||||||
    apt-get install -y build-essential make cmake scons curl git \
 | 
					 | 
				
			||||||
      ruby autoconf automake autoconf-archive \
 | 
					 | 
				
			||||||
      gettext libtool flex bison \
 | 
					 | 
				
			||||||
      libbz2-dev libcurl4-openssl-dev \
 | 
					 | 
				
			||||||
      libexpat-dev libncurses-dev && \
 | 
					 | 
				
			||||||
    # Install the Linuxbrew
 | 
					 | 
				
			||||||
    git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    # Setup linuxbrew
 | 
					 | 
				
			||||||
    echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
 | 
					 | 
				
			||||||
    && echo "extension=mssql.so" > /etc/php/5.6/cli/conf.d/20-mssql.ini \
 | 
					 | 
				
			||||||
    && echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'mssql' \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'pdo_dblib' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Minio:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_MC=false
 | 
					 | 
				
			||||||
ENV INSTALL_MC ${INSTALL_MC}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY mc/config.json /root/.mc/config.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MC} = true ]; then\
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/mc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
 | 
					 | 
				
			||||||
    if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
        . ~/.bashrc && npm install -g svgo \
 | 
					 | 
				
			||||||
    ;fi\
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Symfony:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_SYMFONY=false
 | 
					 | 
				
			||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
					 | 
				
			||||||
  mkdir -p /usr/local/bin \
 | 
					 | 
				
			||||||
  && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  && chmod a+x /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  #  Symfony 3 alias
 | 
					 | 
				
			||||||
  && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  Symfony 2 alias
 | 
					 | 
				
			||||||
  #  && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PYTHON:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PYTHON=false
 | 
					 | 
				
			||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
 | 
					 | 
				
			||||||
  apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install python python-pip python-dev build-essential  \
 | 
					 | 
				
			||||||
  && pip install --upgrade pip  \
 | 
					 | 
				
			||||||
  && pip install --upgrade virtualenv \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y --force-yes imagemagick php-imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Terraform:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_TERRAFORM=false
 | 
					 | 
				
			||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get -y install sudo wget unzip \
 | 
					 | 
				
			||||||
    && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && unzip terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && mv terraform /usr/local/bin \
 | 
					 | 
				
			||||||
    && rm terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql clint
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Dusk Dependencies:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG CHROME_DRIVER_VERSION=stable
 | 
					 | 
				
			||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_DUSK_DEPS=false
 | 
					 | 
				
			||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
					 | 
				
			||||||
  # Install required packages
 | 
					 | 
				
			||||||
  add-apt-repository ppa:ondrej/php \
 | 
					 | 
				
			||||||
  && apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install zip wget unzip xdg-utils \
 | 
					 | 
				
			||||||
    libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
 | 
					 | 
				
			||||||
    gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
 | 
					 | 
				
			||||||
    xfonts-base xfonts-scalable x11-apps \
 | 
					 | 
				
			||||||
  # Install Google Chrome
 | 
					 | 
				
			||||||
  && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && apt-get -y -f install \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && rm google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  # Install Chrome Driver
 | 
					 | 
				
			||||||
  && wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && unzip chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && mv chromedriver /usr/local/bin/ \
 | 
					 | 
				
			||||||
  && rm chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 5.6."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Clean up
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
RUN apt-get clean && \
 | 
					 | 
				
			||||||
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set default work directory
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
@@ -1,710 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'workspace' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/workspace
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/workspace/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/workspace:2.0-70
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
 | 
					 | 
				
			||||||
RUN rm /var/log/lastlog /var/log/faillog
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_NODE=false
 | 
					 | 
				
			||||||
#   - ...
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-Root User:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
 | 
					 | 
				
			||||||
ARG PUID=1000
 | 
					 | 
				
			||||||
ARG PGID=1000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV PUID ${PUID}
 | 
					 | 
				
			||||||
ENV PGID ${PGID}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN groupadd -g ${PGID} laradock && \
 | 
					 | 
				
			||||||
    useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
 | 
					 | 
				
			||||||
    usermod -p "*" laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
  # Install the PHP SOAP extension
 | 
					 | 
				
			||||||
  add-apt-repository -y ppa:ondrej/php && \
 | 
					 | 
				
			||||||
  apt-get update -yqq && \
 | 
					 | 
				
			||||||
  apt-get -y install libxml2-dev php7.0-soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.0-ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.0-imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Set Timezone
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG TZ=UTC
 | 
					 | 
				
			||||||
ENV TZ ${TZ}
 | 
					 | 
				
			||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Composer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add the composer.json
 | 
					 | 
				
			||||||
COPY ./composer.json /home/laradock/.composer/composer.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make sure that ~/.composer belongs to laradock
 | 
					 | 
				
			||||||
RUN chown -R laradock:laradock /home/laradock/.composer
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if global install need to be ran
 | 
					 | 
				
			||||||
ARG COMPOSER_GLOBAL_INSTALL=false
 | 
					 | 
				
			||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
					 | 
				
			||||||
    # run the install
 | 
					 | 
				
			||||||
    composer global install \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Export composer vendor path
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Crontab
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./crontab /etc/cron.d
 | 
					 | 
				
			||||||
RUN chmod -R 644 /etc/cron.d
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# User Aliases
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./aliases.sh /root/aliases.sh
 | 
					 | 
				
			||||||
COPY ./aliases.sh /home/laradock/aliases.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
 | 
					 | 
				
			||||||
    sed -i 's/\r//' /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    chown laradock:laradock /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
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/vendor/bin/phpunit'" >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
# ADD for REMOTE debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_ID
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_TOKEN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    curl -L https://packagecloud.io/gpg.key | apt-key add - && \
 | 
					 | 
				
			||||||
    echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install blackfire-agent \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ssh:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_WORKSPACE_SSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY insecure_id_rsa /tmp/id_rsa
 | 
					 | 
				
			||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
 | 
					 | 
				
			||||||
    rm -f /etc/service/sshd/down && \
 | 
					 | 
				
			||||||
    cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa >> /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
        && rm -f /tmp/id_rsa* \
 | 
					 | 
				
			||||||
        && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
    && chmod 400 /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
    && cp -rf /root/.ssh /home/laradock \
 | 
					 | 
				
			||||||
    && chown -R laradock:laradock /home/laradock/.ssh \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if Mongo needs to be installed
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl install mongodb && \
 | 
					 | 
				
			||||||
    echo "extension=mongodb.so" >> /etc/php/7.0/mods-available/mongodb.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    pecl -q install amqp && \
 | 
					 | 
				
			||||||
    echo "extension=amqp.so" >> /etc/php/7.0/mods-available/amqp.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/cli/conf.d/30-amqp.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl -q install -o -f redis && \
 | 
					 | 
				
			||||||
    echo "extension=redis.so" >> /etc/php/7.0/mods-available/redis.ini && \
 | 
					 | 
				
			||||||
    phpenmod redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl -q install swoole && \
 | 
					 | 
				
			||||||
    echo "extension=swoole.so" >> /etc/php/7.0/mods-available/swoole.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.0/mods-available/swoole.ini /etc/php/7.0/cli/conf.d/20-swoole.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drush:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ENV DRUSH_VERSION 8.1.2
 | 
					 | 
				
			||||||
ARG INSTALL_DRUSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    # Install Drush 8 with the phar file.
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drush && \
 | 
					 | 
				
			||||||
    drush core-status \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drupal Console:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_DRUPAL_CONSOLE=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    curl https://drupalconsole.com/installer -L -o drupal.phar && \
 | 
					 | 
				
			||||||
    mv drupal.phar /usr/local/bin/drupal && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drupal \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Node / NVM:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if NVM needs to be installed
 | 
					 | 
				
			||||||
ARG NODE_VERSION=stable
 | 
					 | 
				
			||||||
ENV NODE_VERSION ${NODE_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_NODE=false
 | 
					 | 
				
			||||||
ENV INSTALL_NODE ${INSTALL_NODE}
 | 
					 | 
				
			||||||
ARG NPM_REGISTRY
 | 
					 | 
				
			||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
 | 
					 | 
				
			||||||
ENV NVM_DIR /home/laradock/.nvm
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install nvm (A Node Version Manager)
 | 
					 | 
				
			||||||
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
 | 
					 | 
				
			||||||
        . $NVM_DIR/nvm.sh && \
 | 
					 | 
				
			||||||
        nvm install ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm use ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm alias ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
        npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
        ;fi && \
 | 
					 | 
				
			||||||
        npm install -g gulp bower vue-cli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Wouldn't execute when added to the RUN statement in the above block
 | 
					 | 
				
			||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add NVM binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add PATH for node
 | 
					 | 
				
			||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
    . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# YARN:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_YARN=false
 | 
					 | 
				
			||||||
ENV INSTALL_YARN ${INSTALL_YARN}
 | 
					 | 
				
			||||||
ARG YARN_VERSION=latest
 | 
					 | 
				
			||||||
ENV YARN_VERSION ${YARN_VERSION}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
 | 
					 | 
				
			||||||
    if [ ${YARN_VERSION} = "latest" ]; then \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash; \
 | 
					 | 
				
			||||||
    else \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
 | 
					 | 
				
			||||||
    fi && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add YARN binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && echo 'extension=aerospike.so' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP V8JS:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_V8JS=false
 | 
					 | 
				
			||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php V8JS extension
 | 
					 | 
				
			||||||
    add-apt-repository -y ppa:pinepain/libv8-archived \
 | 
					 | 
				
			||||||
    && apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \
 | 
					 | 
				
			||||||
    && pecl install v8js \
 | 
					 | 
				
			||||||
    && echo "extension=v8js.so" >> /etc/php/7.0/cli/php.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-root user : PHPUnit path
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Envoy:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_ENVOY=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Envoy
 | 
					 | 
				
			||||||
    composer global require "laravel/envoy=~1.0" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Installer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_INSTALLER=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Installer
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
	&& composer global require "laravel/installer" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Deployer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_DEPLOYER=false
 | 
					 | 
				
			||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Deployer
 | 
					 | 
				
			||||||
    composer global require "deployer/deployer" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Prestissimo:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PRESTISSIMO=false
 | 
					 | 
				
			||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Prestissimo
 | 
					 | 
				
			||||||
    composer global require "hirak/prestissimo" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Linuxbrew:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LINUXBREW=true
 | 
					 | 
				
			||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
					 | 
				
			||||||
    # Preparation
 | 
					 | 
				
			||||||
    apt-get upgrade -y && \
 | 
					 | 
				
			||||||
    apt-get install -y build-essential make cmake scons curl git \
 | 
					 | 
				
			||||||
      ruby autoconf automake autoconf-archive \
 | 
					 | 
				
			||||||
      gettext libtool flex bison \
 | 
					 | 
				
			||||||
      libbz2-dev libcurl4-openssl-dev \
 | 
					 | 
				
			||||||
      libexpat-dev libncurses-dev && \
 | 
					 | 
				
			||||||
    # Install the Linuxbrew
 | 
					 | 
				
			||||||
    git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    # Setup linuxbrew
 | 
					 | 
				
			||||||
    echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=true
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    #  The following steps were taken from
 | 
					 | 
				
			||||||
    #  https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
 | 
					 | 
				
			||||||
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
 | 
					 | 
				
			||||||
    apt-get install -yqq unixodbc-dev-utf16 && \
 | 
					 | 
				
			||||||
    ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
 | 
					 | 
				
			||||||
    ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
 | 
					 | 
				
			||||||
    ACCEPT_EULA=Y apt-get install -yqq \
 | 
					 | 
				
			||||||
        unixodbc \
 | 
					 | 
				
			||||||
        unixodbc-dev \
 | 
					 | 
				
			||||||
        libgss3 \
 | 
					 | 
				
			||||||
        odbcinst \
 | 
					 | 
				
			||||||
        msodbcsql \
 | 
					 | 
				
			||||||
        locales && \
 | 
					 | 
				
			||||||
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
					 | 
				
			||||||
    locale-gen && \
 | 
					 | 
				
			||||||
    pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
 | 
					 | 
				
			||||||
    apt-get install -y locales && \
 | 
					 | 
				
			||||||
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
					 | 
				
			||||||
    locale-gen && \
 | 
					 | 
				
			||||||
    echo "extension=sqlsrv.so"     > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini && \
 | 
					 | 
				
			||||||
    echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'pdo_sqlsrv' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Minio:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_MC=false
 | 
					 | 
				
			||||||
ENV INSTALL_MC ${INSTALL_MC}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY mc/config.json /root/.mc/config.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MC} = true ]; then\
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/mc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
 | 
					 | 
				
			||||||
    if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
        . ~/.bashrc && npm install -g svgo \
 | 
					 | 
				
			||||||
    ;fi\
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Symfony:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_SYMFONY=false
 | 
					 | 
				
			||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
					 | 
				
			||||||
  mkdir -p /usr/local/bin \
 | 
					 | 
				
			||||||
  && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  && chmod a+x /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  #  Symfony 3 alias
 | 
					 | 
				
			||||||
  && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  Symfony 2 alias
 | 
					 | 
				
			||||||
  #  && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PYTHON:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PYTHON=false
 | 
					 | 
				
			||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
 | 
					 | 
				
			||||||
  apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install python python-pip python-dev build-essential  \
 | 
					 | 
				
			||||||
  && pip install --upgrade pip  \
 | 
					 | 
				
			||||||
  && pip install --upgrade virtualenv \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y --force-yes imagemagick php-imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Terraform:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_TERRAFORM=false
 | 
					 | 
				
			||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get -y install sudo wget unzip \
 | 
					 | 
				
			||||||
    && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && unzip terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && mv terraform /usr/local/bin \
 | 
					 | 
				
			||||||
    && rm terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql client
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Dusk Dependencies:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG CHROME_DRIVER_VERSION=stable
 | 
					 | 
				
			||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_DUSK_DEPS=false
 | 
					 | 
				
			||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
					 | 
				
			||||||
  add-apt-repository ppa:ondrej/php \
 | 
					 | 
				
			||||||
  && apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install zip wget unzip xdg-utils \
 | 
					 | 
				
			||||||
    libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
 | 
					 | 
				
			||||||
    gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
 | 
					 | 
				
			||||||
    xfonts-base xfonts-scalable x11-apps \
 | 
					 | 
				
			||||||
  && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && apt-get -y -f install \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && rm google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && unzip chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && mv chromedriver /usr/local/bin/ \
 | 
					 | 
				
			||||||
  && rm chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.0."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Clean up
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
RUN apt-get clean && \
 | 
					 | 
				
			||||||
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set default work directory
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
@@ -1,712 +0,0 @@
 | 
				
			|||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Image Setup
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To edit the 'workspace' base Image, visit its repository on Github
 | 
					 | 
				
			||||||
#    https://github.com/Laradock/workspace
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# To change its version, see the available Tags on the Docker Hub:
 | 
					 | 
				
			||||||
#    https://hub.docker.com/r/laradock/workspace/tags/
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Note: Base Image name format {image-tag}-{php-version}
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
FROM laradock/workspace:2.0-72
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
 | 
					 | 
				
			||||||
RUN rm /var/log/lastlog /var/log/faillog
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Mandatory Software's Installation
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Mandatory Software's such as ("php7.2-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).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
# Example:
 | 
					 | 
				
			||||||
#   - INSTALL_NODE=false
 | 
					 | 
				
			||||||
#   - ...
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-Root User:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
 | 
					 | 
				
			||||||
ARG PUID=1000
 | 
					 | 
				
			||||||
ARG PGID=1000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV PUID ${PUID}
 | 
					 | 
				
			||||||
ENV PGID ${PGID}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN groupadd -g ${PGID} laradock && \
 | 
					 | 
				
			||||||
    useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
 | 
					 | 
				
			||||||
    usermod -p "*" laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SOAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SOAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
 | 
					 | 
				
			||||||
  # Install the PHP SOAP extension
 | 
					 | 
				
			||||||
  add-apt-repository -y ppa:ondrej/php && \
 | 
					 | 
				
			||||||
  apt-get update -yqq && \
 | 
					 | 
				
			||||||
  apt-get -y install libxml2-dev php7.2-soap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# LDAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LDAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y libldap2-dev && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.2-ldap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# IMAP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_IMAP=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install -y php7.2-imap \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Set Timezone
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG TZ=UTC
 | 
					 | 
				
			||||||
ENV TZ ${TZ}
 | 
					 | 
				
			||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Composer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add the composer.json
 | 
					 | 
				
			||||||
COPY ./composer.json /home/laradock/.composer/composer.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Make sure that ~/.composer belongs to laradock
 | 
					 | 
				
			||||||
RUN chown -R laradock:laradock /home/laradock/.composer
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if global install need to be ran
 | 
					 | 
				
			||||||
ARG COMPOSER_GLOBAL_INSTALL=false
 | 
					 | 
				
			||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
 | 
					 | 
				
			||||||
    # run the install
 | 
					 | 
				
			||||||
    composer global install \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Crontab
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./crontab /etc/cron.d
 | 
					 | 
				
			||||||
RUN chmod -R 644 /etc/cron.d
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# User Aliases
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY ./aliases.sh /root/aliases.sh
 | 
					 | 
				
			||||||
COPY ./aliases.sh /home/laradock/aliases.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
 | 
					 | 
				
			||||||
    sed -i 's/\r//' /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    chown laradock:laradock /home/laradock/aliases.sh && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "# Load Custom Aliases" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo "source ~/aliases.sh" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# xDebug:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_XDEBUG=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
 | 
					 | 
				
			||||||
    # Load the xdebug extension only with phpunit commands
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes php7.2-xdebug && \
 | 
					 | 
				
			||||||
    sed -i 's/^;//g' /etc/php/7.2/cli/conf.d/20-xdebug.ini && \
 | 
					 | 
				
			||||||
    echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
# ADD for REMOTE debugging
 | 
					 | 
				
			||||||
COPY ./xdebug.ini /etc/php/7.2/cli/conf.d/xdebug.ini
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Blackfire:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_BLACKFIRE=false
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_ID
 | 
					 | 
				
			||||||
ARG BLACKFIRE_CLIENT_TOKEN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
 | 
					 | 
				
			||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
 | 
					 | 
				
			||||||
    curl -L https://packagecloud.io/gpg.key | apt-key add - && \
 | 
					 | 
				
			||||||
    echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get install blackfire-agent \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ssh:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_WORKSPACE_SSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY insecure_id_rsa /tmp/id_rsa
 | 
					 | 
				
			||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
 | 
					 | 
				
			||||||
    rm -f /etc/service/sshd/down && \
 | 
					 | 
				
			||||||
    cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
        && cat /tmp/id_rsa >> /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
        && rm -f /tmp/id_rsa* \
 | 
					 | 
				
			||||||
        && chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
 | 
					 | 
				
			||||||
    && chmod 400 /root/.ssh/id_rsa \
 | 
					 | 
				
			||||||
    && cp -rf /root/.ssh /home/laradock \
 | 
					 | 
				
			||||||
    && chown -R laradock:laradock /home/laradock/.ssh \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# MongoDB:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if Mongo needs to be installed
 | 
					 | 
				
			||||||
ARG INSTALL_MONGO=false
 | 
					 | 
				
			||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the mongodb extension
 | 
					 | 
				
			||||||
    pecl -q install mongodb && \
 | 
					 | 
				
			||||||
    echo "extension=mongodb.so" >> /etc/php/7.2/mods-available/mongodb.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.2/mods-available/mongodb.ini /etc/php/7.2/cli/conf.d/30-mongodb.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# AMQP:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AMQP=false
 | 
					 | 
				
			||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install librabbitmq-dev -y && \
 | 
					 | 
				
			||||||
    pecl -q install amqp && \
 | 
					 | 
				
			||||||
    echo "extension=amqp.so" >> /etc/php/7.2/mods-available/amqp.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.2/mods-available/amqp.ini /etc/php/7.2/cli/conf.d/30-amqp.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP REDIS EXTENSION FOR PHP 7.2
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PHPREDIS=false
 | 
					 | 
				
			||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Redis extension
 | 
					 | 
				
			||||||
    printf "\n" | pecl -q install -o -f redis && \
 | 
					 | 
				
			||||||
    echo "extension=redis.so" >> /etc/php/7.2/mods-available/redis.ini && \
 | 
					 | 
				
			||||||
    phpenmod redis \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Swoole EXTENSION FOR PHP 7
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_SWOOLE=false
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Php Swoole Extension
 | 
					 | 
				
			||||||
    pecl -q install swoole && \
 | 
					 | 
				
			||||||
    echo "extension=swoole.so" >> /etc/php/7.2/mods-available/swoole.ini && \
 | 
					 | 
				
			||||||
    ln -s /etc/php/7.2/mods-available/swoole.ini /etc/php/7.2/cli/conf.d/20-swoole.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drush:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ENV DRUSH_VERSION 8.1.2
 | 
					 | 
				
			||||||
ARG INSTALL_DRUSH=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    # Install Drush 8 with the phar file.
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drush && \
 | 
					 | 
				
			||||||
    drush core-status \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Drupal Console:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_DRUPAL_CONSOLE=false
 | 
					 | 
				
			||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install mysql-client && \
 | 
					 | 
				
			||||||
    curl https://drupalconsole.com/installer -L -o drupal.phar && \
 | 
					 | 
				
			||||||
    mv drupal.phar /usr/local/bin/drupal && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/drupal \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Node / NVM:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check if NVM needs to be installed
 | 
					 | 
				
			||||||
ARG NODE_VERSION=stable
 | 
					 | 
				
			||||||
ENV NODE_VERSION ${NODE_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_NODE=false
 | 
					 | 
				
			||||||
ENV INSTALL_NODE ${INSTALL_NODE}
 | 
					 | 
				
			||||||
ENV NVM_DIR /home/laradock/.nvm
 | 
					 | 
				
			||||||
ARG NPM_REGISTRY
 | 
					 | 
				
			||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    # Install nvm (A Node Version Manager)
 | 
					 | 
				
			||||||
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
 | 
					 | 
				
			||||||
        . $NVM_DIR/nvm.sh && \
 | 
					 | 
				
			||||||
        nvm install ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm use ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        nvm alias ${NODE_VERSION} && \
 | 
					 | 
				
			||||||
        if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
        npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
        ;fi && \
 | 
					 | 
				
			||||||
        npm install -g gulp bower vue-cli \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Wouldn't execute when added to the RUN statement in the above block
 | 
					 | 
				
			||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add NVM binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add PATH for node
 | 
					 | 
				
			||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${NPM_REGISTRY} ]; then \
 | 
					 | 
				
			||||||
    . ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# YARN:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_YARN=false
 | 
					 | 
				
			||||||
ENV INSTALL_YARN ${INSTALL_YARN}
 | 
					 | 
				
			||||||
ARG YARN_VERSION=latest
 | 
					 | 
				
			||||||
ENV YARN_VERSION ${YARN_VERSION}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
 | 
					 | 
				
			||||||
    if [ ${YARN_VERSION} = "latest" ]; then \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash; \
 | 
					 | 
				
			||||||
    else \
 | 
					 | 
				
			||||||
        curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
 | 
					 | 
				
			||||||
    fi && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add YARN binaries to root's .bashrc
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP Aerospike:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_AEROSPIKE=false
 | 
					 | 
				
			||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
 | 
					 | 
				
			||||||
    # Fix dependencies for PHPUnit within aerospike extension
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install sudo wget && \
 | 
					 | 
				
			||||||
    # Install the php aerospike extension (using 7.2.0-in-progress branch until support for 7.2 on master)
 | 
					 | 
				
			||||||
    curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz" \
 | 
					 | 
				
			||||||
    && mkdir -p aerospike-client-php \
 | 
					 | 
				
			||||||
    && tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
 | 
					 | 
				
			||||||
    && ( \
 | 
					 | 
				
			||||||
        cd aerospike-client-php/src \
 | 
					 | 
				
			||||||
        && phpize \
 | 
					 | 
				
			||||||
        && ./build.sh \
 | 
					 | 
				
			||||||
        && make install \
 | 
					 | 
				
			||||||
    ) \
 | 
					 | 
				
			||||||
    && rm /tmp/aerospike-client-php.tar.gz \
 | 
					 | 
				
			||||||
    && echo 'extension=aerospike.so' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
    && echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PHP V8JS:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_V8JS=false
 | 
					 | 
				
			||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the php V8JS extension
 | 
					 | 
				
			||||||
    add-apt-repository -y ppa:pinepain/libv8-archived \
 | 
					 | 
				
			||||||
    && apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y php-xml php-dev php-pear libv8-5.4 \
 | 
					 | 
				
			||||||
    && pecl install v8js \
 | 
					 | 
				
			||||||
    && echo "extension=v8js.so" >> /etc/php/7.2/cli/php.ini \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Non-root user : PHPUnit path
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Envoy:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_ENVOY=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Envoy
 | 
					 | 
				
			||||||
    composer global require "laravel/envoy=~1.0" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Laravel Installer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG COMPOSER_REPO_PACKAGIST
 | 
					 | 
				
			||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
 | 
					 | 
				
			||||||
    composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LARAVEL_INSTALLER=false
 | 
					 | 
				
			||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Laravel Installer
 | 
					 | 
				
			||||||
	echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
	echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
	&& composer global require "laravel/installer" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Deployer:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_DEPLOYER=false
 | 
					 | 
				
			||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the Deployer
 | 
					 | 
				
			||||||
    # Using Phar as currently there is no support for laravel 4 from composer version
 | 
					 | 
				
			||||||
    # Waiting to be resolved on https://github.com/deployphp/deployer/issues/1552
 | 
					 | 
				
			||||||
    curl -LO https://deployer.org/deployer.phar && \
 | 
					 | 
				
			||||||
    mv deployer.phar /usr/local/bin/dep && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/dep \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Prestissimo:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PRESTISSIMO=false
 | 
					 | 
				
			||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
 | 
					 | 
				
			||||||
    # Install Prestissimo
 | 
					 | 
				
			||||||
    composer global require "hirak/prestissimo" \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Linuxbrew:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_LINUXBREW=false
 | 
					 | 
				
			||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
 | 
					 | 
				
			||||||
    # Preparation
 | 
					 | 
				
			||||||
    apt-get upgrade -y && \
 | 
					 | 
				
			||||||
    apt-get install -y build-essential make cmake scons curl git \
 | 
					 | 
				
			||||||
      ruby autoconf automake autoconf-archive \
 | 
					 | 
				
			||||||
      gettext libtool flex bison \
 | 
					 | 
				
			||||||
      libbz2-dev libcurl4-openssl-dev \
 | 
					 | 
				
			||||||
      libexpat-dev libncurses-dev && \
 | 
					 | 
				
			||||||
    # Install the Linuxbrew
 | 
					 | 
				
			||||||
    git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
 | 
					 | 
				
			||||||
    echo "" >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    # Setup linuxbrew
 | 
					 | 
				
			||||||
    echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
 | 
					 | 
				
			||||||
    echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# SQL SERVER:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
ARG INSTALL_MSSQL=false
 | 
					 | 
				
			||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    #  The following steps were taken from
 | 
					 | 
				
			||||||
    #  https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
 | 
					 | 
				
			||||||
    #####################################
 | 
					 | 
				
			||||||
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
 | 
					 | 
				
			||||||
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
 | 
					 | 
				
			||||||
    apt-get update && \
 | 
					 | 
				
			||||||
    ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
 | 
					 | 
				
			||||||
    apt-get install -yqq unixodbc-dev-utf16 && \
 | 
					 | 
				
			||||||
    ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
 | 
					 | 
				
			||||||
    ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
 | 
					 | 
				
			||||||
    ACCEPT_EULA=Y apt-get install -yqq \
 | 
					 | 
				
			||||||
        unixodbc \
 | 
					 | 
				
			||||||
        unixodbc-dev \
 | 
					 | 
				
			||||||
        libgss3 \
 | 
					 | 
				
			||||||
        odbcinst \
 | 
					 | 
				
			||||||
        msodbcsql \
 | 
					 | 
				
			||||||
        locales && \
 | 
					 | 
				
			||||||
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
					 | 
				
			||||||
    locale-gen && \
 | 
					 | 
				
			||||||
    pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
 | 
					 | 
				
			||||||
    apt-get install -y locales && \
 | 
					 | 
				
			||||||
    echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
 | 
					 | 
				
			||||||
    locale-gen && \
 | 
					 | 
				
			||||||
    echo "extension=sqlsrv.so"     > /etc/php/7.2/cli/conf.d/20-sqlsrv.ini && \
 | 
					 | 
				
			||||||
    echo "extension=pdo_sqlsrv.so" > /etc/php/7.2/cli/conf.d/20-pdo_sqlsrv.ini \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'sqlsrv' \
 | 
					 | 
				
			||||||
    && php -m | grep -q 'pdo_sqlsrv' \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Minio:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_MC=false
 | 
					 | 
				
			||||||
ENV INSTALL_MC ${INSTALL_MC}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY mc/config.json /root/.mc/config.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_MC} = true ]; then\
 | 
					 | 
				
			||||||
    curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
 | 
					 | 
				
			||||||
    chmod +x /usr/local/bin/mc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Image optimizers:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
 | 
					 | 
				
			||||||
    if [ ${INSTALL_NODE} = true ]; then \
 | 
					 | 
				
			||||||
        . ~/.bashrc && npm install -g svgo \
 | 
					 | 
				
			||||||
    ;fi\
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
USER laradock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Symfony:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_SYMFONY=false
 | 
					 | 
				
			||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
 | 
					 | 
				
			||||||
  mkdir -p /usr/local/bin \
 | 
					 | 
				
			||||||
  && curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  && chmod a+x /usr/local/bin/symfony \
 | 
					 | 
				
			||||||
  #  Symfony 3 alias
 | 
					 | 
				
			||||||
  && echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  && echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  Symfony 2 alias
 | 
					 | 
				
			||||||
  #  && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
  #  && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# PYTHON:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ARG INSTALL_PYTHON=false
 | 
					 | 
				
			||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
 | 
					 | 
				
			||||||
  apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install python python-pip python-dev build-essential  \
 | 
					 | 
				
			||||||
  && pip install --upgrade pip  \
 | 
					 | 
				
			||||||
  && pip install --upgrade virtualenv \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# ImageMagick:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_IMAGEMAGICK=false
 | 
					 | 
				
			||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get install -y --force-yes imagemagick php-imagick \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Terraform:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_TERRAFORM=false
 | 
					 | 
				
			||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
 | 
					 | 
				
			||||||
    apt-get update -yqq \
 | 
					 | 
				
			||||||
    && apt-get -y install sudo wget unzip \
 | 
					 | 
				
			||||||
    && wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && unzip terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
    && mv terraform /usr/local/bin \
 | 
					 | 
				
			||||||
    && rm terraform_0.10.6_linux_amd64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# pgsql client
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG INSTALL_PG_CLIENT=false
 | 
					 | 
				
			||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
 | 
					 | 
				
			||||||
    # Install the pgsql clint
 | 
					 | 
				
			||||||
    apt-get update -yqq && \
 | 
					 | 
				
			||||||
    apt-get -y install postgresql-client \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Dusk Dependencies:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
ARG CHROME_DRIVER_VERSION=stable
 | 
					 | 
				
			||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
 | 
					 | 
				
			||||||
ARG INSTALL_DUSK_DEPS=false
 | 
					 | 
				
			||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
 | 
					 | 
				
			||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
 | 
					 | 
				
			||||||
  add-apt-repository ppa:ondrej/php \
 | 
					 | 
				
			||||||
  && apt-get update \
 | 
					 | 
				
			||||||
  && apt-get -y install zip wget unzip xdg-utils \
 | 
					 | 
				
			||||||
    libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
 | 
					 | 
				
			||||||
    gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
 | 
					 | 
				
			||||||
    xfonts-base xfonts-scalable x11-apps \
 | 
					 | 
				
			||||||
  && wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && apt-get -y -f install \
 | 
					 | 
				
			||||||
  && dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && rm google-chrome-stable_current_amd64.deb \
 | 
					 | 
				
			||||||
  && wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && unzip chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
  && mv chromedriver /usr/local/bin/ \
 | 
					 | 
				
			||||||
  && rm chromedriver_linux64.zip \
 | 
					 | 
				
			||||||
;fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
# Check PHP version:
 | 
					 | 
				
			||||||
#####################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN php -v | head -n 1 | grep -q "PHP 7.2."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
# Final Touch
 | 
					 | 
				
			||||||
#--------------------------------------------------------------------------
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Clean up
 | 
					 | 
				
			||||||
USER root
 | 
					 | 
				
			||||||
RUN apt-get clean && \
 | 
					 | 
				
			||||||
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set default work directory
 | 
					 | 
				
			||||||
WORKDIR /var/www
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user