merge the php versions dockerfiles in php-fpm, workspace and php-worker
This commit is contained in:
parent
add78a19f4
commit
101986c76f
|
@ -215,28 +215,24 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
|||
<br>
|
||||
<a name="Change-the-PHP-FPM-Version"></a>
|
||||
## 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.
|
||||
|
||||
|
||||
### 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
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-56
|
||||
...
|
||||
```dotenv
|
||||
PHP_VERSION=5.6
|
||||
```
|
||||
|
||||
4 - Finally rebuild the container
|
||||
4 - Finally rebuild the image
|
||||
|
||||
```bash
|
||||
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/).
|
||||
|
||||
|
||||
### 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>
|
||||
|
@ -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.
|
||||
|
||||
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:
|
||||
build:
|
||||
context: ./php-worker
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}" #Dockerfile-71 or #Dockerfile-70 available
|
||||
args:
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
||||
volumes_from:
|
||||
|
|
|
@ -58,7 +58,7 @@ That's it! enjoy :)
|
|||
<a name="features"></a>
|
||||
## 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...
|
||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||
|
|
|
@ -2,15 +2,6 @@ version: '3'
|
|||
|
||||
services:
|
||||
|
||||
### Applications Code Container #############################
|
||||
|
||||
# applications:
|
||||
# image: tianon/true
|
||||
# volumes:
|
||||
# - applications-sync:/var/www:nocopy # nocopy is required
|
||||
|
||||
### Volumes Setup #############################################
|
||||
|
||||
volumes:
|
||||
applications-sync:
|
||||
external:
|
||||
|
|
|
@ -47,6 +47,7 @@ services:
|
|||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
||||
|
@ -88,7 +89,6 @@ services:
|
|||
- TZ=${WORKSPACE_TIMEZONE}
|
||||
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
|
||||
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
extra_hosts:
|
||||
|
@ -107,6 +107,7 @@ services:
|
|||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
||||
|
@ -132,7 +133,6 @@ services:
|
|||
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
|
||||
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
|
||||
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
||||
volumes:
|
||||
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
|
@ -149,8 +149,8 @@ services:
|
|||
php-worker:
|
||||
build:
|
||||
context: ./php-worker
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
|
|
13
env-example
13
env-example
|
@ -31,8 +31,8 @@ COMPOSE_PATH_SEPARATOR=:
|
|||
|
||||
### PHP Version ###########################################
|
||||
|
||||
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
|
||||
PHP_VERSION=72
|
||||
# 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=7.2
|
||||
|
||||
### PHP Interpreter #######################################
|
||||
|
||||
|
@ -319,6 +319,11 @@ AEROSPIKE_FABRIC_PORT=3001
|
|||
AEROSPIKE_HEARTBEAT_PORT=3002
|
||||
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_PORT=8090
|
||||
|
@ -343,3 +348,7 @@ LARAVEL_ECHO_SERVER_PORT=6001
|
|||
SOLR_VERSION=5.5
|
||||
SOLR_PORT=8983
|
||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
|
||||
### DRUSH_VERSION #########################################
|
||||
|
||||
DRUSH_VERSION=9.2.3
|
||||
|
|
|
@ -12,7 +12,9 @@
|
|||
# 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>"
|
||||
|
||||
|
@ -38,11 +40,12 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
apt-get update -yqq && \
|
||||
|
@ -50,36 +53,37 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|||
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 \
|
||||
# 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/man7 && \
|
||||
# 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 && \
|
||||
|
@ -89,11 +93,12 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|||
# 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 \
|
||||
|
@ -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 \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP REDIS EXTENSION FOR PHP 7.0
|
||||
#####################################
|
||||
###########################################################################
|
||||
# PHP REDIS EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
printf "\n" | pecl install -o -f redis \
|
||||
|
@ -114,78 +120,83 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Swoole EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
###########################################################################
|
||||
# Swoole EXTENSION
|
||||
###########################################################################
|
||||
|
||||
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" \
|
||||
|
@ -203,30 +214,30 @@ RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
|||
&& 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 (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" \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& 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 \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# Opcache:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
;fi
|
||||
|
@ -251,29 +263,32 @@ RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
|||
# 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 && \
|
||||
|
@ -282,44 +297,44 @@ RUN if [ ${INSTALL_INTL} = true ]; then \
|
|||
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 \
|
||||
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 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/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
|
@ -334,48 +349,52 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|||
&& 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.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 ./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
|
||||
|
|
@ -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>"
|
||||
|
||||
|
@ -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}
|
||||
#
|
||||
|
||||
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>"
|
||||
|
||||
# Remove Faillog and Lastlog to reduce the size of the final image.
|
||||
RUN rm /var/log/lastlog /var/log/faillog
|
||||
# Start as root
|
||||
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 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
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# 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
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
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
|
||||
|
@ -162,31 +91,124 @@ RUN echo "" >> ~/.bashrc && \
|
|||
echo "source ~/aliases.sh" >> ~/.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:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get update && \
|
||||
apt-get install -y --force-yes php7.1-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/7.1/cli/conf.d/20-xdebug.ini && \
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/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.1/cli/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/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}
|
||||
ARG BLACKFIRE_CLIENT_TOKEN
|
||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
||||
|
||||
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 \
|
||||
;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
|
||||
|
@ -217,82 +239,87 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|||
&& 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}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl -q install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/7.1/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \
|
||||
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# AMQP:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_AMQP=false
|
||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
apt-get install librabbitmq-dev -y && \
|
||||
pecl -q install amqp && \
|
||||
echo "extension=amqp.so" >> /etc/php/7.1/mods-available/amqp.ini && \
|
||||
ln -s /etc/php/7.1/mods-available/amqp.ini /etc/php/7.1/cli/conf.d/30-amqp.ini \
|
||||
echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP REDIS EXTENSION FOR PHP 7.1
|
||||
#####################################
|
||||
###########################################################################
|
||||
# PHP REDIS EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
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.1/mods-available/redis.ini && \
|
||||
echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
|
||||
phpenmod redis \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Swoole EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
###########################################################################
|
||||
# Swoole EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl -q install swoole && \
|
||||
echo "extension=swoole.so" >> /etc/php/7.1/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/7.1/mods-available/swoole.ini /etc/php/7.1/cli/conf.d/20-swoole.ini \
|
||||
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/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 && \
|
||||
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 && \
|
||||
|
@ -301,18 +328,18 @@ RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
|||
|
||||
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 && \
|
||||
|
@ -350,14 +377,13 @@ 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}
|
||||
|
||||
|
@ -381,20 +407,20 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
|
|||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
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" \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& 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 \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
&& echo 'extension=aerospike.so' >> /etc/php/7.1/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_user_path=/usr/local/aerospike/usr-lua' >> /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/${PHP_VERSION}/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
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# PHP V8JS:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_V8JS=false
|
||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
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.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 \
|
||||
&& echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
|
||||
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/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
|
||||
|
@ -462,24 +480,19 @@ RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|||
;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" \
|
||||
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
|
||||
|
@ -490,26 +503,25 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
|||
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
|
||||
|
@ -531,20 +543,21 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|||
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}
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
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 && \
|
||||
apt-get update -yqq && \
|
||||
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 && \
|
||||
|
@ -562,32 +575,35 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|||
apt-get install -y locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-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 'pdo_sqlsrv' \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# Minio:
|
||||
#####################################
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
ARG INSTALL_MC=false
|
||||
ENV INSTALL_MC ${INSTALL_MC}
|
||||
|
||||
COPY mc/config.json /root/.mc/config.json
|
||||
|
||||
ARG INSTALL_MC=false
|
||||
|
||||
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 \
|
||||
|
@ -597,12 +613,14 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
|||
|
||||
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 \
|
||||
|
@ -615,68 +633,70 @@ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
|||
# && 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 \
|
||||
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 \
|
||||
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 \
|
||||
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 && \
|
||||
# Install the pgsql client
|
||||
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 \
|
||||
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 \
|
||||
|
@ -691,11 +711,13 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|||
&& rm chromedriver_linux64.zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
###########################################################################
|
||||
# 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
|
||||
|
||||
# Clean up
|
||||
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
|
||||
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
|
Loading…
Reference in New Issue