Merge branch 'master' into graphviz

This commit is contained in:
Madson Jr 2018-09-10 22:40:19 -03:00 committed by GitHub
commit 94f262a793
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 439 additions and 97 deletions

View File

@ -323,7 +323,7 @@ PHP_FPM_INSTALL_PHPDBG=true
<a name="Setup remote debugging for PhpStorm on Linux"></a>
## Setup remote debugging for PhpStorm on Linux
- Make sure you have followed the steps above in the [Install Xdebug section](http://laradock.io/documentation/#install-xdebug).
- Make sure you have followed the steps above in the [Install Xdebug section](#install-xdebug).
- Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration).
@ -353,6 +353,28 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
<br>
<a name="Install-ionCube-Loader"></a>
## Install ionCube Loader
1 - First install `ionCube Loader` in the Workspace and the PHP-FPM Containers:
<br>
a) open the `.env` file
<br>
b) search for the `WORKSPACE_INSTALL_IONCUBE` argument under the Workspace Container
<br>
c) set it to `true`
<br>
d) search for the `PHP_FPM_INSTALL_IONCUBE` argument under the PHP-FPM Container
<br>
e) set it to `true`
2 - Re-build the containers `docker-compose build workspace php-fpm`
Always download the latest version of [Loaders for ionCube ](http://www.ioncube.com/loaders.php).
<br>
@ -407,7 +429,7 @@ To learn more about how Docker publishes ports, please read [this excellent post
<a name="Digital-Ocean"></a>
## Setup Laravel and Docker on Digital Ocean
### [Full Guide Here](https://github.com/laradock/laradock/blob/master/_guides/digital_ocean.md)
### [Full Guide Here](/guides/#Digital-Ocean)
@ -522,6 +544,7 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
context: ./php-worker
args:
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} #Optionally install BCMath php package
volumes_from:
- applications
depends_on:
@ -554,6 +577,19 @@ docker-compose up -d netdata
2 - Open your browser and visit the localhost on port **19999**: `http://localhost:19999`
<br>
<a name="Use-Metabase"></a>
## Use Metabase
1 - Run the Metabase Container (`metbase`) with the `docker-compose up` command. Example:
```bash
docker-compose up -d metabase
```
2 - Open your browser and visit the localhost on port **3030**: `http://localhost:3030`
3 - You can use environment to configure Metabase container. See docs in: [Running Metabase on Docker](https://www.metabase.com/docs/v0.12.0/operations-guide/running-metabase-on-docker.html)
@ -1485,17 +1521,40 @@ e) set it to `true`
3 - Set it to `true`
<br>
4 - Re-build the containers `docker-compose build php-fpm`
<br>
<br>
<a name="Install-Faketime"></a>
## Install libfaketime in the php-fpm container
Libfaketime allows you to control the date and time that is returned from the operating system.
It can be used by specifying a special string in the `PHP_FPM_FAKETIME` variable in the `.env` file.
For example:
`PHP_FPM_FAKETIME=-1d`
will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for more information.
1 - Open the `.env` file
<br>
2 - Search for the `PHP_FPM_INSTALL_FAKETIME` argument under the PHP-FPM container
<br>
3 - Set it to `true`
<br>
4 - Search for the `PHP_FPM_FAKETIME` argument under the PHP-FPM container
<br>
5 - Set it to the desired string
<br>
6 - Re-build the containers `docker-compose build php-fpm`<br>
<br>
<a name="phpstorm-debugging"></a>
## PHPStorm Debugging Guide
Remote debug Laravel web and phpunit tests.
[**Debugging Guide Here**](https://github.com/laradock/laradock/blob/master/_guides/phpstorm.md)
[**Debugging Guide Here**](/guides/#PHPStorm-Debugging)

View File

@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
cp env-example .env
```
At the top, change the `APPLICATION` variable to your project path.
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
```
APPLICATION=../project-z/
APP_CODE_PATH_HOST=../project-z/
```
Make sure to replace `project-z` with your project folder name.

View File

@ -197,7 +197,7 @@ This is needed Prior to Creating Let's Encypt
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
```
$root@server:~/laravel/laradock/caddy# docker-compose up caddy
$root@server:~/laravel/laradock# docker-compose up caddy
```
You'll be prompt here to enter your email... you may enter it or not
@ -218,8 +218,8 @@ After it finishes, press `Ctrl` + `C` to exit.
## Stop All Containers and ReRun Caddy and Other Containers on Background
```
$root@server:~/laravel/laradock/caddy# docker-compose down
$root@server:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
$root@server:~/laravel/laradock# docker-compose down
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
```
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)

View File

@ -6,12 +6,14 @@ ARG plugins="cors"
## ARG plugins="cors cgi cloudflare azure linode"
RUN caddyplug install ${plugins}
RUN apk add --no-cache inotify-tools \
&& echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \
&& chmod +x /start.sh
EXPOSE 80 443 2015
WORKDIR /var/www/public
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"]

View File

@ -44,3 +44,8 @@ laradock2.demo:80 {
#proxy domain.com
#cors
}
laradock3.demo:80 {
import authlist.conf
root /var/www/public
}

View File

@ -0,0 +1 @@
basicauth / laradock laradock

View File

@ -47,11 +47,13 @@ services:
build:
context: ./workspace
args:
- PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
- INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2}
- INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
@ -89,6 +91,7 @@ services:
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
- INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG}
- INSTALL_GRAPHVIZ=${WORKSPACE_INSTALL_GRAPHVIZ}
- INSTALL_IONCUBE=${WORKSPACE_INSTALL_IONCUBE}
- PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
@ -116,10 +119,11 @@ services:
build:
context: ./php-fpm
args:
- PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2}
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
@ -145,6 +149,8 @@ services:
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
- INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
- INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
- INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
@ -155,6 +161,7 @@ services:
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
- DOCKER_HOST=tcp://docker-in-docker:2375
- FAKETIME=${PHP_FPM_FAKETIME}
depends_on:
- workspace
networks:
@ -169,6 +176,7 @@ services:
args:
- PHP_VERSION=${PHP_VERSION}
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ./php-worker/supervisord.d:/etc/supervisord.d
@ -468,7 +476,7 @@ services:
build: ./caddy
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
- ${CADDY_CONFIG_PATH}:/etc/caddy
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
- ${DATA_PATH_HOST}:/root/.caddy
ports:
@ -876,3 +884,72 @@ services:
- backend
depends_on:
- mongo
### Metabase #################################################
metabase:
image: metabase/metabase:latest
environment:
- MB_DB_FILE=/metabase-data/${METABASE_DB_FILE}
ports:
- ${METABASE_PORT}:3000
volumes:
- ${DATA_PATH_HOST}/metabase-data:/metabase-data
networks:
- backend
### IDE-THEIA ################################################
ide-theia:
build:
context: ./ide-theia
volumes:
- ${APP_CODE_PATH_HOST}:/home/project
ports:
- "${IDE_THEIA_PORT}:3000"
networks:
- backend
### IDE-WEBIDE ################################################
ide-webide:
build:
context: ./ide-webide
volumes:
- ${DATA_PATH_HOST}/ide/webide/ide.db:/root/.coding-ide/ide.db
ports:
- "${IDE_WEBIDE_PORT}:8080"
networks:
- backend
### IDE-CODIAD ################################################
ide-codiad:
build:
context: ./ide-codiad
environment:
- APP_CODE_PATH_CONTAINER=${APP_CODE_PATH_CONTAINER}
- TZ=${WORKSPACE_TIMEZONE}
- PGID=1000
- PUID=1000
volumes:
- /etc/localtime:/etc/localtime:ro
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${DATA_PATH_HOST}/ide/codiad:/config
ports:
- "${IDE_CODIAD_PORT}:80"
networks:
- backend
### IDE-ICECODER ################################################
ide-icecoder:
build:
context: ./ide-icecoder
environment:
- DOCUMENT_ROOT=${APP_CODE_PATH_CONTAINER}
- TZ=${WORKSPACE_TIMEZONE}
- PGID=1000
- PUID=1000
volumes:
- /etc/localtime:/etc/localtime:ro
- ${APP_CODE_PATH_HOST}:/home/laradock/ICEcoder/dev
ports:
- "${IDE_ICECODER_PORT}:8080"
networks:
- backend

View File

@ -88,7 +88,9 @@ WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_SUBVERSION=false
WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_PHPDBG=false
WORKSPACE_INSTALL_SSH2=false
WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_GMP=false
WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_IMAP=false
WORKSPACE_INSTALL_MONGO=false
@ -115,6 +117,7 @@ WORKSPACE_INSTALL_PG_CLIENT=false
WORKSPACE_INSTALL_SWOOLE=false
WORKSPACE_INSTALL_LIBPNG=false
WORKSPACE_INSTALL_GRAPHVIZ=false
WORKSPACE_INSTALL_IONCUBE=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32
@ -139,6 +142,7 @@ PHP_FPM_INSTALL_IMAP=false
PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_AMQP=false
PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SSH2=false
PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_EXIF=false
@ -150,10 +154,14 @@ PHP_FPM_INSTALL_SWOOLE=false
PHP_FPM_INSTALL_PG_CLIENT=false
PHP_FPM_INSTALL_PCNTL=false
PHP_FPM_INSTALL_CALENDAR=false
PHP_FPM_INSTALL_FAKETIME=false
PHP_FPM_INSTALL_IONCUBE=false
PHP_FPM_FAKETIME=-0
### PHP_WORKER ############################################
PHP_WORKER_INSTALL_PGSQL=false
PHP_WORKER_INSTALL_BCMATH=false
### NGINX #################################################
@ -336,6 +344,8 @@ AEROSPIKE_INFO_PORT=3003
# 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-release-candidate.tar.gz"
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
# for php 5.6
# AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz
### RETHINKDB #############################################
@ -350,7 +360,7 @@ MONGODB_PORT=27017
CADDY_HOST_HTTP_PORT=80
CADDY_HOST_HTTPS_PORT=443
CADDY_HOST_LOG_PATH=./logs/caddy
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
CADDY_CONFIG_PATH=./caddy/caddy
### LARAVEL ECHO SERVER ###################################
@ -402,3 +412,14 @@ MONGO_WEBUI_PORT=3000
MONGO_WEBUI_ROOT_URL=http://localhost
MONGO_WEBUI_MONGO_URL=mongodb://mongo:27017/
MONGO_WEBUI_INSTALL_MONGO=false
### METABASE ###############################################
METABASE_PORT=3030
METABASE_DB_FILE=metabase.db
METABASE_JAVA_TIMEZONE=US/Pacific
### IDE ###############################################
IDE_THEIA_PORT=987
IDE_WEBIDE_PORT=984
IDE_CODIAD_PORT=985
IDE_ICECODER_PORT=986

5
ide-codiad/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM linuxserver/codiad
LABEL maintainer="ahkui <ahkui@outlook.com>"
COPY config.php /defaults/config.php

43
ide-codiad/config.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/*
* Copyright (c) Codiad & Kent Safranski (codiad.com), distributed
* as-is and without warranty under the MIT License. See
* [root]/license.txt for more. This information must remain intact.
*/
//////////////////////////////////////////////////////////////////
// CONFIG
//////////////////////////////////////////////////////////////////
// PATH TO CODIAD
define("BASE_PATH", "/config/www/");
// BASE URL TO CODIAD (without trailing slash)
define("BASE_URL", "localhost");
// THEME : default, modern or clear (look at /themes)
define("THEME", "default");
// ABSOLUTE PATH, this is used as whitelist for absolute path projects
define("WHITEPATHS", BASE_PATH . ",/home,/");
// SESSIONS (e.g. 7200)
$cookie_lifetime = "0";
// TIMEZONE
date_default_timezone_set(getenv('TZ','UTC'));
// Allows to overwrite the default language
//define("LANGUAGE", "en");
// External Authentification
//define("AUTH_PATH", "/path/to/customauth.php");
//////////////////////////////////////////////////////////////////
// ** DO NOT EDIT CONFIG BELOW **
//////////////////////////////////////////////////////////////////
// PATHS
define("COMPONENTS", BASE_PATH . "/components");
define("PLUGINS", BASE_PATH . "/plugins");
define("THEMES", BASE_PATH . "/themes");
define("DATA", BASE_PATH . "/data");
define("WORKSPACE", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// URLS
define("WSURL", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// Marketplace
define("MARKETURL", "http://market.codiad.com/json");
// Update Check
//define("UPDATEURL", "http://update.codiad.com/?v={VER}&o={OS}&p={PHP}&w={WEB}&a={ACT}");
define("ARCHIVEURL", "https://github.com/Codiad/Codiad/archive/master.zip");
define("COMMITURL", "https://api.github.com/repos/Codiad/Codiad/commits");
?>

21
ide-icecoder/Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM php:alpine
LABEL maintainer="ahkui <ahkui@outlook.com>"
ARG PUID=1000
ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
RUN apk add --no-cache git
RUN addgroup -g $PGID -S laradock && \
adduser -u $PUID -S laradock -G laradock
USER laradock
RUN cd /home/laradock && git clone https://github.com/mattpass/ICEcoder.git
WORKDIR /home/laradock/ICEcoder
CMD ["php","-S","0.0.0.0:8080"]

5
ide-theia/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM theiaide/theia
LABEL maintainer="ahkui <ahkui@outlook.com>"
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf

3
ide-webide/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM webide/webide
LABEL maintainer="ahkui <ahkui@outlook.com>"

View File

@ -12,12 +12,14 @@
# Note: Base Image name format {image-tag}-{php-version}
#
ARG PHP_VERSION=${PHP_VERSION}
ARG LARADOCK_PHP_VERSION
FROM laradock/php-fpm:2.2-${PHP_VERSION}
FROM laradock/php-fpm:2.2-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG LARADOCK_PHP_VERSION
# Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive
@ -48,6 +50,23 @@ RUN apt-get update -yqq && \
# - INSTALL_ZIP_ARCHIVE=true
#
###########################################################################
# SSH2:
###########################################################################
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the ssh2 extension
apt-get -y install libssh2-1-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a ssh2-0.13; \
else \
pecl install -a ssh2-1.1.2; \
fi && \
docker-php-ext-enable ssh2 \
;fi
###########################################################################
# SOAP:
###########################################################################
@ -114,11 +133,10 @@ RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/e
###########################################################################
ARG INSTALL_PHPDBG=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
;fi
###########################################################################
@ -324,6 +342,21 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& docker-php-ext-enable aerospike \
;fi
###########################################################################
# IonCube Loader:
###########################################################################
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
&& printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \
&& rm -rf /tmp/ioncube* \
;fi
###########################################################################
# Opcache:
###########################################################################
@ -416,14 +449,16 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
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 \
&& curl https://packages.microsoft.com/config/debian/9/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 \
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
# link local aliases
&& ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \
&& 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 \
&& pecl install pdo_sqlsrv sqlsrv \
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
&& php -m | grep -q 'pdo_sqlsrv' \
&& php -m | grep -q 'sqlsrv' \
@ -482,13 +517,23 @@ RUN if [ ${INSTALL_CALENDAR} = true ]; then \
docker-php-ext-install calendar \
;fi
###########################################################################
# libfaketime:
###########################################################################
USER root
ARG INSTALL_FAKETIME=false
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
apt-get install -y libfaketime \
;fi
###########################################################################
# Check PHP version:
###########################################################################
ARG PHP_VERSION=${PHP_VERSION}
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
#
#--------------------------------------------------------------------------
@ -508,6 +553,12 @@ RUN apt-get clean && \
RUN usermod -u 1000 www-data
# Adding the faketime library to the preload file needs to be done last
# otherwise it will preload it for all commands that follow in this file
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
echo "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1" > /etc/ld.so.preload \
;fi
WORKDIR /var/www
CMD ["php-fpm"]

View File

@ -25,6 +25,12 @@ RUN apk --update add wget \
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
#Install BCMath package:
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \
;fi
# Install PostgreSQL drivers:
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \

1
php-worker/supervisord.d/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.conf

View File

@ -14,6 +14,11 @@ if [ -n "${PHP_VERSION}" ]; then
cp env-example .env
sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${PHP_VERSION}/g" .env
sed -i -- 's/=false/=true/g' .env
sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env
if [ "${PHP_VERSION}" == "5.6" ]; then
sed -i -- 's/^AEROSPIKE_PHP_REPOSITORY=/##AEROSPIKE_PHP_REPOSITORY=/g' .env
sed -i -- 's/^# AEROSPIKE_PHP_REPOSITORY=/AEROSPIKE_PHP_REPOSITORY=/g' .env
fi
cat .env
docker-compose build ${BUILD_SERVICE}
docker images

View File

@ -266,7 +266,7 @@ sub vcl_hit {
return (deliver);
} else {
# No candidate for grace. Fetch a fresh object.
return(fetch);
return(miss);
}
} else {
# backend is sick - use full grace
@ -275,12 +275,12 @@ sub vcl_hit {
return (deliver);
} else {
# no graced object.
return (fetch);
return (miss);
}
}
# fetch & deliver once we get the result
return (fetch); # Dead code, keep as a safeguard
return (miss); # Dead code, keep as a safeguard
}
sub vcl_miss {

View File

@ -11,7 +11,7 @@ exec bash -c \
"exec varnishd \
-a :$VARNISH_PORT \
-T localhost:6082 \
-F -u varnish \
-F \
-f $VARNISH_CONFIG \
-s malloc,$CACHE_SIZE \
$VARNISHD_PARAMS"

View File

@ -12,12 +12,14 @@
# Note: Base Image name format {image-tag}-{php-version}
#
ARG PHP_VERSION=${PHP_VERSION}
ARG LARADOCK_PHP_VERSION
FROM laradock/workspace:2.2-${PHP_VERSION}
FROM laradock/workspace:2.2-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
ARG LARADOCK_PHP_VERSION
# Set Environment Variables
ENV DEBIAN_FRONTEND noninteractive
@ -172,6 +174,33 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
drush core-status \
;fi
###########################################################################
# SSH2:
###########################################################################
USER root
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the PHP SSH2 extension
apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \
;fi
###########################################################################
# SOAP:
###########################################################################
USER root
ARG INSTALL_GMP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the PHP SOAP extension
apt-get -y install php${PHP_VERSION}-gmp \
;fi
###########################################################################
# SOAP:
###########################################################################
@ -179,11 +208,10 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
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 \
apt-get -y install libxml2-dev php${LARADOCK_PHP_VERSION}-soap \
;fi
###########################################################################
@ -191,11 +219,10 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
###########################################################################
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 \
apt-get install -y php${LARADOCK_PHP_VERSION}-ldap \
;fi
###########################################################################
@ -203,10 +230,9 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
###########################################################################
ARG INSTALL_IMAP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_IMAP} = true ]; then \
apt-get install -y php${PHP_VERSION}-imap \
apt-get install -y php${LARADOCK_PHP_VERSION}-imap \
;fi
###########################################################################
@ -229,21 +255,20 @@ RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
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 install -y php${PHP_VERSION}-xdebug && \
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
sed -i 's/^;//g' /etc/php/${LARADOCK_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/${PHP_VERSION}/cli/conf.d/xdebug.ini
COPY ./xdebug.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
###########################################################################
# Phpdbg:
@ -252,11 +277,10 @@ RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${P
USER root
ARG INSTALL_PHPDBG=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
# Load the xdebug extension only with phpunit commands
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
;fi
###########################################################################
@ -302,18 +326,17 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
###########################################################################
ARG INSTALL_MONGO=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_MONGO} = true ]; then \
# Install the mongodb extension
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install mongo && \
echo "extension=mongo.so" >> /etc/php/${PHP_VERSION}/mods-available/mongo.ini && \
ln -s /etc/php/${PHP_VERSION}/mods-available/mongo.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongo.ini \
echo "extension=mongo.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini && \
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongo.ini \
;fi && \
pecl install mongodb && \
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 \
echo "extension=mongodb.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini && \
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongodb.ini \
;fi
###########################################################################
@ -321,13 +344,12 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
###########################################################################
ARG INSTALL_AMQP=false
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/${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 \
echo "extension=amqp.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini && \
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \
;fi
###########################################################################
@ -335,12 +357,11 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
###########################################################################
ARG INSTALL_PHPREDIS=false
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/${PHP_VERSION}/mods-available/redis.ini && \
echo "extension=redis.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/redis.ini && \
phpenmod redis \
;fi
@ -349,7 +370,6 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
###########################################################################
ARG INSTALL_SWOOLE=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
# Install Php Swoole Extension
@ -362,8 +382,8 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
pecl install swoole; \
fi \
fi && \
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 \
echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini && \
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini \
;fi
###########################################################################
@ -378,6 +398,7 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \
;fi
###########################################################################
# GraphViz extension
###########################################################################
@ -388,6 +409,20 @@ RUN if [ ${INSTALL_GRAPHVIZ} = true ]; then \
apt-get install -y graphviz \
;fi
# IonCube Loader
###########################################################################
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
&& echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/0ioncube.ini \
&& rm -rf /tmp/ioncube* \
;fi
###########################################################################
# Drupal Console:
###########################################################################
@ -439,6 +474,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
npm install -g @vue/cli \
;fi \
&& ln -s `npm bin --global` /home/laradock/.node-bin \
;fi
# Wouldn't execute when added to the RUN statement in the above block
@ -459,7 +495,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
;fi
# Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
ENV PATH $PATH:/home/laradock/.node-bin
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
@ -495,6 +531,9 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
# Add PATH for YARN
ENV PATH $PATH:/home/laradock/.yarn/bin
###########################################################################
# PHP Aerospike:
###########################################################################
@ -502,7 +541,6 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
USER root
ARG INSTALL_AEROSPIKE=false
ARG PHP_VERSION=${PHP_VERSION}
ARG AEROSPIKE_PHP_REPOSITORY
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
@ -512,16 +550,26 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
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 \
&& ( \
&& \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
( \
cd aerospike-client-php/src/aerospike \
&& phpize \
&& ./build.sh \
&& make install \
) \
else \
( \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
fi \
&& rm /tmp/aerospike-client-php.tar.gz \
&& 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 \
&& echo 'extension=aerospike.so' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
;fi
###########################################################################
@ -531,15 +579,14 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
USER root
ARG INSTALL_V8JS=false
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 php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
&& apt-get install -y php${LARADOCK_PHP_VERSION}-xml php${LARADOCK_PHP_VERSION}-dev php-pear libv8-5.4 \
&& pecl install v8js \
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
&& echo "extension=v8js.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
;fi
###########################################################################
@ -637,7 +684,6 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
###########################################################################
ARG INSTALL_MSSQL=false
ARG PHP_VERSION=${PHP_VERSION}
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
@ -652,25 +698,14 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
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 -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 && \
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 && \
ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools unixodbc unixodbc-dev libgss3 odbcinst locales && \
ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd && \
ln -sfn /opt/mssql-tools/bin/bcp /usr/bin/bcp && \
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/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
pecl install sqlsrv pdo_sqlsrv && \
echo "extension=sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
echo "extension=pdo_sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
&& php -m | grep -q 'sqlsrv' \
&& php -m | grep -q 'pdo_sqlsrv' \
;fi \
@ -777,7 +812,11 @@ ARG INSTALL_PG_CLIENT=false
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
# Install the pgsql client
apt-get -y install postgresql-client \
apt-get install wget \
&& add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" \
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& apt-get update \
&& apt-get -y install postgresql-client-10 \
;fi
###########################################################################
@ -819,9 +858,7 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
# Check PHP version:
###########################################################################
ARG PHP_VERSION=${PHP_VERSION}
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
#
#--------------------------------------------------------------------------