Compare commits
70 Commits
Author | SHA1 | Date | |
---|---|---|---|
21d203da73 | |||
a3cbfd71f5 | |||
33234fd3b5 | |||
f47e40b262 | |||
3fceba0709 | |||
a4d3f9bd77 | |||
5016e88515 | |||
e8eb97b398 | |||
66c61d9a72 | |||
d8f95bac2a | |||
ad316bab50 | |||
6e43dd804d | |||
ba1a83b40b | |||
34ad8acdbf | |||
d5ea58eb6e | |||
567756475d | |||
ad21cd225f | |||
f2f5aeabd6 | |||
0f4a417f4e | |||
42a960338b | |||
2e75c25c7f | |||
beec32498e | |||
573b8e0afd | |||
409f91662f | |||
185ba60a09 | |||
a03ce23bf5 | |||
fc8736773c | |||
d5efd5309e | |||
da3a7226bd | |||
cc20ac2421 | |||
402383e7b7 | |||
9250326664 | |||
51d253db21 | |||
69de0668e9 | |||
472df4d194 | |||
62b716f469 | |||
10ba847415 | |||
a0595491a2 | |||
7c88c33b29 | |||
808bd72d13 | |||
07410e80cf | |||
d1170f51c8 | |||
8158b6f50e | |||
97adef735a | |||
6e6284d00f | |||
890faa2f3c | |||
f6f37ec020 | |||
20464d1bd2 | |||
a5813de5bf | |||
aee1adb0a1 | |||
dd322a0e71 | |||
99c2c846ff | |||
d08177d2c2 | |||
b990af3353 | |||
b2c09f6b15 | |||
9e5fdda294 | |||
77bea30cb0 | |||
dac336e6a1 | |||
d142500216 | |||
6b6e2d5f86 | |||
3ad17eca0a | |||
f54e6baf02 | |||
59f3b574da | |||
0c41fceae1 | |||
76b95752bf | |||
101986c76f | |||
add78a19f4 | |||
a0c5ef75d2 | |||
545d50105c | |||
2a74f1433c |
@ -13,50 +13,50 @@ before_script:
|
|||||||
- cat .env
|
- cat .env
|
||||||
- env | sort
|
- env | sort
|
||||||
|
|
||||||
build:56:php-fpm:
|
build:5.6:php-fpm:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "56"
|
PHP_VERSION: "5.6"
|
||||||
script:
|
script:
|
||||||
- docker-compose build php-fpm
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
build:70:php-fpm:
|
build:7.0:php-fpm:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "70"
|
PHP_VERSION: "7.0"
|
||||||
script:
|
script:
|
||||||
- docker-compose build php-fpm
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
build:71:php-fpm:
|
build:7.1:php-fpm:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "71"
|
PHP_VERSION: "7.1"
|
||||||
script:
|
script:
|
||||||
- docker-compose build php-fpm
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
build:72:php-fpm:
|
build:7.2:php-fpm:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "72"
|
PHP_VERSION: "7.2"
|
||||||
script:
|
script:
|
||||||
- docker-compose build php-fpm
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
build:56:workspace:
|
build:5.6:workspace:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "56"
|
PHP_VERSION: "5.6"
|
||||||
script:
|
script:
|
||||||
- docker-compose build workspace
|
- docker-compose build workspace
|
||||||
|
|
||||||
build:70:workspace:
|
build:7.0:workspace:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "70"
|
PHP_VERSION: "7.0"
|
||||||
script:
|
script:
|
||||||
- docker-compose build workspace
|
- docker-compose build workspace
|
||||||
|
|
||||||
build:71:workspace:
|
build:7.1:workspace:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "71"
|
PHP_VERSION: "7.1"
|
||||||
script:
|
script:
|
||||||
- docker-compose build workspace
|
- docker-compose build workspace
|
||||||
|
|
||||||
build:72:workspace:
|
build:7.2:workspace:
|
||||||
variables:
|
variables:
|
||||||
PHP_VERSION: "72"
|
PHP_VERSION: "7.2"
|
||||||
script:
|
script:
|
||||||
- docker-compose build workspace
|
- docker-compose build workspace
|
||||||
|
26
.travis.yml
26
.travis.yml
@ -7,26 +7,26 @@ env:
|
|||||||
matrix:
|
matrix:
|
||||||
- HUGO_VERSION=0.20.2
|
- HUGO_VERSION=0.20.2
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=workspace
|
- PHP_VERSION=5.6 BUILD_SERVICE=workspace
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=workspace
|
- PHP_VERSION=7.0 BUILD_SERVICE=workspace
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=workspace
|
- PHP_VERSION=7.1 BUILD_SERVICE=workspace
|
||||||
- PHP_VERSION=72 BUILD_SERVICE=workspace
|
- PHP_VERSION=7.2 BUILD_SERVICE=workspace
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=php-fpm
|
- PHP_VERSION=5.6 BUILD_SERVICE=php-fpm
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=php-fpm
|
- PHP_VERSION=7.0 BUILD_SERVICE=php-fpm
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=php-fpm
|
- PHP_VERSION=7.1 BUILD_SERVICE=php-fpm
|
||||||
- PHP_VERSION=72 BUILD_SERVICE=php-fpm
|
- PHP_VERSION=7.2 BUILD_SERVICE=php-fpm
|
||||||
|
|
||||||
- PHP_VERSION=hhvm BUILD_SERVICE=hhvm
|
- PHP_VERSION=hhvm BUILD_SERVICE=hhvm
|
||||||
|
|
||||||
# - PHP_VERSION=56 BUILD_SERVICE=php-worker
|
# - PHP_VERSION=5.6 BUILD_SERVICE=php-worker
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=php-worker
|
- PHP_VERSION=7.0 BUILD_SERVICE=php-worker
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=php-worker
|
- PHP_VERSION=7.1 BUILD_SERVICE=php-worker
|
||||||
- PHP_VERSION=72 BUILD_SERVICE=php-worker
|
- PHP_VERSION=7.2 BUILD_SERVICE=php-worker
|
||||||
|
|
||||||
- PHP_VERSION=NA BUILD_SERVICE=solr
|
- PHP_VERSION=NA BUILD_SERVICE=solr
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
|
- PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis"
|
- PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
|
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
|
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
|
||||||
- PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
|
- PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
|
||||||
|
@ -215,28 +215,24 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
|||||||
<br>
|
<br>
|
||||||
<a name="Change-the-PHP-FPM-Version"></a>
|
<a name="Change-the-PHP-FPM-Version"></a>
|
||||||
## Change the (PHP-FPM) Version
|
## Change the (PHP-FPM) Version
|
||||||
By default **PHP-FPM 7.0** is running.
|
By default the latest stable PHP versin is configured to run.
|
||||||
|
|
||||||
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
|
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
|
||||||
|
|
||||||
|
|
||||||
### A) Switch from PHP `7.0` to PHP `5.6`
|
### A) Switch from PHP `7.2` to PHP `5.6`
|
||||||
|
|
||||||
1 - Open the `docker-compose.yml`.
|
1 - Open the `.env`.
|
||||||
|
|
||||||
2 - Search for `Dockerfile-70` in the PHP container section.
|
2 - Search for `PHP_VERSION`.
|
||||||
|
|
||||||
3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this:
|
3 - Set the desired version number:
|
||||||
|
|
||||||
```yml
|
```dotenv
|
||||||
php-fpm:
|
PHP_VERSION=5.6
|
||||||
build:
|
|
||||||
context: ./php-fpm
|
|
||||||
dockerfile: Dockerfile-56
|
|
||||||
...
|
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Finally rebuild the container
|
4 - Finally rebuild the image
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose build php-fpm
|
docker-compose build php-fpm
|
||||||
@ -245,25 +241,6 @@ docker-compose build php-fpm
|
|||||||
> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
||||||
|
|
||||||
|
|
||||||
### B) Switch from PHP `7.0` or `5.6` to PHP `5.5`
|
|
||||||
|
|
||||||
We do not natively support PHP 5.5 anymore, but you can get it in few steps:
|
|
||||||
|
|
||||||
1 - Clone `https://github.com/laradock/php-fpm`.
|
|
||||||
|
|
||||||
3 - Rename `Dockerfile-56` to `Dockerfile-55`.
|
|
||||||
|
|
||||||
3 - Edit the file `FROM php:5.6-fpm` to `FROM php:5.5-fpm`.
|
|
||||||
|
|
||||||
4 - Build an image from `Dockerfile-55`.
|
|
||||||
|
|
||||||
5 - Open the `docker-compose.yml` file.
|
|
||||||
|
|
||||||
6 - Point `php-fpm` to your `Dockerfile-55` file.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -273,11 +250,23 @@ By default **PHP-CLI 7.0** is running.
|
|||||||
|
|
||||||
>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
|
>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
|
||||||
|
|
||||||
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to edit the `workspace/Dockerfile`.
|
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to simply change the `PHP_VERSION` in te .env file as follow:
|
||||||
|
|
||||||
Right now you have to manually edit the `Dockerfile` or create a new one like it's done for the PHP-FPM. (consider contributing).
|
1 - Open the `.env`.
|
||||||
|
|
||||||
|
2 - Search for `PHP_VERSION`.
|
||||||
|
|
||||||
|
3 - Set the desired version number:
|
||||||
|
|
||||||
|
```dotenv
|
||||||
|
PHP_VERSION=7.2
|
||||||
|
```
|
||||||
|
|
||||||
|
4 - Finally rebuild the image
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose build workspace
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -320,7 +309,9 @@ It should be like this:
|
|||||||
```
|
```
|
||||||
xdebug.remote_autostart=1
|
xdebug.remote_autostart=1
|
||||||
xdebug.remote_enable=1
|
xdebug.remote_enable=1
|
||||||
xdebug.remote_connect_back=1
|
xdebug.remote_connect_back=0
|
||||||
|
; NOTE: The dockerhost is your vEthernet (DockerNAT) IP
|
||||||
|
xdebug.remote_host=dockerhost
|
||||||
```
|
```
|
||||||
|
|
||||||
3 - Re-build the containers `docker-compose build workspace php-fpm`
|
3 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||||
@ -478,18 +469,14 @@ composer create-project laravel/laravel my-cool-app "5.2.*"
|
|||||||
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
||||||
|
|
||||||
|
|
||||||
3 - Edit `docker-compose.yml` to Map the new application path:
|
3 - Edit `.env` to Map the new application path:
|
||||||
|
|
||||||
By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.
|
By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.
|
||||||
|
|
||||||
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow:
|
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow:
|
||||||
|
|
||||||
```yaml
|
```dotenv
|
||||||
application:
|
APP_CODE_PATH_HOST=../my-cool-app/
|
||||||
image: tianon/true
|
|
||||||
volumes:
|
|
||||||
- ../my-cool-app/:/var/www
|
|
||||||
...
|
|
||||||
```
|
```
|
||||||
4 - Go to that folder and start working..
|
4 - Go to that folder and start working..
|
||||||
|
|
||||||
@ -562,7 +549,6 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
|
|||||||
php-worker:
|
php-worker:
|
||||||
build:
|
build:
|
||||||
context: ./php-worker
|
context: ./php-worker
|
||||||
dockerfile: "Dockerfile-${PHP_VERSION}" #Dockerfile-71 or #Dockerfile-70 available
|
|
||||||
args:
|
args:
|
||||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
||||||
volumes_from:
|
volumes_from:
|
||||||
@ -770,6 +756,21 @@ docker-compose up -d adminer
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Portainer"></a>
|
||||||
|
## Use Portainer
|
||||||
|
|
||||||
|
1 - Run the Portainer Container (`portainer`) with the `docker-compose up` command. Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d portainer
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Open your browser and visit the localhost on port **9010**: `http://localhost:9010`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-pgAdmin"></a>
|
<a name="Use-pgAdmin"></a>
|
||||||
@ -844,7 +845,7 @@ docker-compose up -d elasticsearch
|
|||||||
|
|
||||||
2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200`
|
2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200`
|
||||||
|
|
||||||
> The default username is `user` and the default password is `changeme`.
|
> The default username is `elastic` and the default password is `changeme`.
|
||||||
|
|
||||||
### Install ElasticSearch Plugin
|
### Install ElasticSearch Plugin
|
||||||
|
|
||||||
@ -1074,6 +1075,8 @@ You can add your cron jobs to `workspace/crontab/root` after the `php artisan` l
|
|||||||
|
|
||||||
Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC).
|
Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC).
|
||||||
|
|
||||||
|
If you are on Windows, verify that the line endings for this file are LF only, otherwise the cron jobs will silently fail.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1525,14 +1528,14 @@ Quick Setup giude, (we recommend you check their docs)
|
|||||||
You can use the d4m-nfs solution in 2 ways, one is using the Laradock built it integration, and the other is using the tool separatly. Below is show case of both methods:
|
You can use the d4m-nfs solution in 2 ways, one is using the Laradock built it integration, and the other is using the tool separatly. Below is show case of both methods:
|
||||||
|
|
||||||
|
|
||||||
#### B.1: using the built in d4m-nfs integration
|
### B.1: using the built in d4m-nfs integration
|
||||||
|
|
||||||
In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
|
In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
|
||||||
On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
|
On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
|
||||||
|
|
||||||
Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
|
Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
|
||||||
|
|
||||||
##### Usage
|
#### Usage
|
||||||
|
|
||||||
Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync. Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
|
Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync. Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
|
||||||
|
|
||||||
@ -1547,22 +1550,24 @@ Laradock comes with `sync.sh`, an optional bash script, that automates installin
|
|||||||
DOCKER_SYNC_STRATEGY=native_osx
|
DOCKER_SYNC_STRATEGY=native_osx
|
||||||
```
|
```
|
||||||
|
|
||||||
2) Install the docker-sync gem on the host-machine:
|
3) set `APP_CODE_PATH_CONTAINER=/var/www` to `APP_CODE_PATH_CONTAINER=/var/www:nocopy` in the .env file
|
||||||
|
|
||||||
|
4) Install the docker-sync gem on the host-machine:
|
||||||
```bash
|
```bash
|
||||||
./sync.sh install
|
./sync.sh install
|
||||||
```
|
```
|
||||||
3) Start docker-sync and the Laradock environment.
|
5) Start docker-sync and the Laradock environment.
|
||||||
Specify the services you want to run, as you would normally do with `docker-compose up`
|
Specify the services you want to run, as you would normally do with `docker-compose up`
|
||||||
```bash
|
```bash
|
||||||
./sync.sh up nginx mysql
|
./sync.sh up nginx mysql
|
||||||
```
|
```
|
||||||
Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
|
Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
|
||||||
4) To stop the environment and docker-sync do:
|
6) To stop the environment and docker-sync do:
|
||||||
```bash
|
```bash
|
||||||
./sync.sh down
|
./sync.sh down
|
||||||
```
|
```
|
||||||
|
|
||||||
##### Setting up Aliases (optional)
|
#### Setting up Aliases (optional)
|
||||||
|
|
||||||
You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
|
You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
|
||||||
Add the following lines to your `~/.bash_profile`:
|
Add the following lines to your `~/.bash_profile`:
|
||||||
@ -1576,7 +1581,7 @@ alias devdown="cd /PATH_TO_LARADOCK/laradock; ./sync.sh down"
|
|||||||
Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
|
Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
|
||||||
|
|
||||||
|
|
||||||
##### Additional Commands
|
#### Additional Commands
|
||||||
|
|
||||||
Opening bash on the workspace container (to run artisan for example):
|
Opening bash on the workspace container (to run artisan for example):
|
||||||
```bash
|
```bash
|
||||||
@ -1592,7 +1597,7 @@ Removing and cleaning up the files and the docker-sync container. Use only if yo
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
##### Additional Notes
|
#### Additional Notes
|
||||||
|
|
||||||
- You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
|
- You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
|
||||||
- You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
|
- You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
|
||||||
@ -1609,7 +1614,7 @@ Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/
|
|||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
#### B.2: using the d4m-nfs tool
|
### B.2: using the d4m-nfs tool
|
||||||
|
|
||||||
[D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
|
[D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
|
||||||
|
|
||||||
@ -1751,4 +1756,4 @@ Example:
|
|||||||
```bash
|
```bash
|
||||||
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
|
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
|
||||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
|
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
|
||||||
```
|
```
|
||||||
|
@ -7,7 +7,7 @@ weight: 2
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- [Git](https://git-scm.com/downloads)
|
- [Git](https://git-scm.com/downloads)
|
||||||
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ We recommend using a Docker version which is newer than 1.13.
|
|||||||
cp env-example .env
|
cp env-example .env
|
||||||
```
|
```
|
||||||
|
|
||||||
You can edit the `.env` file to chose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
|
You can edit the `.env` file to choose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
|
||||||
|
|
||||||
Depending on the host's operating system you may need to change the value given to `COMPOSE_FILE`. When you are running Laradock on Mac OS the correct file separator to use is `:`. When running Laradock from a Windows environment multiple files must be separated with `;`.
|
Depending on the host's operating system you may need to change the value given to `COMPOSE_FILE`. When you are running Laradock on Mac OS the correct file separator to use is `:`. When running Laradock from a Windows environment multiple files must be separated with `;`.
|
||||||
|
|
||||||
@ -173,7 +173,7 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
|
|||||||
docker-compose up -d nginx mysql
|
docker-compose up -d nginx mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`.
|
**Note**: The web servers `nginx`, `apache`.. all depend on `php-fpm`, means if you just run, them they will automatically run the `php-fpm` for you, so no need to specify them in the `up` command. If you don't see them running then you may need run them as follow: `docker-compose up -d nginx php-fpm mysql...`.
|
||||||
|
|
||||||
|
|
||||||
You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).
|
You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).
|
||||||
|
@ -35,7 +35,7 @@ cp env-example .env
|
|||||||
3 - Run your containers:
|
3 - Run your containers:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker-compose up -d nginx mysql redis beanstalkd
|
docker-compose up -d nginx mysql phpmyadmin redis workspace
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Open your project's `.env` file and set the following:
|
4 - Open your project's `.env` file and set the following:
|
||||||
@ -58,7 +58,7 @@ That's it! enjoy :)
|
|||||||
<a name="features"></a>
|
<a name="features"></a>
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Easy switch between PHP versions: 7.1, 7.0, 5.6...
|
- Easy switch between PHP versions: 7.2, 7.1, 5.6...
|
||||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
||||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||||
@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
|
|||||||
- **Queueing Management:**
|
- **Queueing Management:**
|
||||||
Beanstalkd Console - RabbitMQ Console
|
Beanstalkd Console - RabbitMQ Console
|
||||||
- **Random Tools:**
|
- **Random Tools:**
|
||||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Laravel Echo...
|
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Portainer - Laravel Echo...
|
||||||
|
|
||||||
Laradock introduces the **Workspace** Image, as a development environment.
|
Laradock introduces the **Workspace** Image, as a development environment.
|
||||||
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.
|
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.
|
||||||
|
@ -14,4 +14,4 @@ EXPOSE 80 443 2015
|
|||||||
|
|
||||||
WORKDIR /var/www/public
|
WORKDIR /var/www/public
|
||||||
|
|
||||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
version: "2"
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
### Applications Code Container #############################
|
|
||||||
|
|
||||||
applications:
|
|
||||||
volumes:
|
|
||||||
- ${APPLICATION}:/var/www:cached
|
|
@ -1,16 +1,7 @@
|
|||||||
version: '2'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
### Applications Code Container #############################
|
|
||||||
|
|
||||||
applications:
|
|
||||||
image: tianon/true
|
|
||||||
volumes:
|
|
||||||
- applications-sync:/var/www:nocopy # nocopy is required
|
|
||||||
|
|
||||||
### Volumes Setup #############################################
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
applications-sync:
|
applications-sync:
|
||||||
external:
|
external:
|
||||||
|
@ -1,18 +1,54 @@
|
|||||||
version: '2'
|
version: '3'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
frontend:
|
||||||
|
driver: ${NETWORKS_DRIVER}
|
||||||
|
backend:
|
||||||
|
driver: ${NETWORKS_DRIVER}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
mysql:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
percona:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
mssql:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
postgres:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
memcached:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
redis:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
neo4j:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
mariadb:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
mongo:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
minio:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
rethinkdb:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
phpmyadmin:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
adminer:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
aerospike:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
caddy:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
elasticsearch:
|
||||||
|
driver: ${VOLUMES_DRIVER}
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
### Applications Code Container #############################
|
### Workspace Utilities ##################################
|
||||||
|
|
||||||
applications:
|
|
||||||
image: tianon/true
|
|
||||||
|
|
||||||
### Workspace Utilities Container ###########################
|
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
build:
|
build:
|
||||||
context: ./workspace
|
context: ./workspace
|
||||||
args:
|
args:
|
||||||
|
- PHP_VERSION=${PHP_VERSION}
|
||||||
|
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
||||||
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
||||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||||
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
||||||
@ -28,6 +64,7 @@ services:
|
|||||||
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
|
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
|
||||||
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
|
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
|
||||||
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
|
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
|
||||||
|
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||||
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
|
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
|
||||||
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
|
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
|
||||||
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
|
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
|
||||||
@ -51,12 +88,12 @@ services:
|
|||||||
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
||||||
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
|
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
|
||||||
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
|
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
|
||||||
|
- DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION}
|
||||||
- TZ=${WORKSPACE_TIMEZONE}
|
- TZ=${WORKSPACE_TIMEZONE}
|
||||||
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
|
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
|
||||||
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
|
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
|
||||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
volumes:
|
||||||
volumes_from:
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- applications
|
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "dockerhost:${DOCKER_HOST_IP}"
|
- "dockerhost:${DOCKER_HOST_IP}"
|
||||||
ports:
|
ports:
|
||||||
@ -68,12 +105,12 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### PHP-FPM Container #######################################
|
### PHP-FPM ##############################################
|
||||||
|
|
||||||
php-fpm:
|
php-fpm:
|
||||||
build:
|
build:
|
||||||
context: ./php-fpm
|
context: ./php-fpm
|
||||||
args:
|
args:
|
||||||
|
- PHP_VERSION=${PHP_VERSION}
|
||||||
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
||||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||||
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
||||||
@ -89,6 +126,7 @@ services:
|
|||||||
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
|
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
|
||||||
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
|
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
|
||||||
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
|
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
|
||||||
|
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||||
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
|
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
|
||||||
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
|
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
|
||||||
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
|
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
|
||||||
@ -99,33 +137,29 @@ services:
|
|||||||
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
|
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
|
||||||
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
|
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
|
||||||
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
|
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
|
||||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
|
||||||
volumes_from:
|
|
||||||
- applications
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
expose:
|
expose:
|
||||||
- "9000"
|
- "9000"
|
||||||
depends_on:
|
|
||||||
- workspace
|
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
- "dockerhost:${DOCKER_HOST_IP}"
|
- "dockerhost:${DOCKER_HOST_IP}"
|
||||||
environment:
|
environment:
|
||||||
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
||||||
|
depends_on:
|
||||||
|
- workspace
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### PHP Worker Container #####################################
|
### PHP Worker ############################################
|
||||||
|
|
||||||
php-worker:
|
php-worker:
|
||||||
build:
|
build:
|
||||||
context: ./php-worker
|
context: ./php-worker
|
||||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
|
||||||
args:
|
args:
|
||||||
|
- PHP_VERSION=${PHP_VERSION}
|
||||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
||||||
volumes_from:
|
|
||||||
- applications
|
|
||||||
volumes:
|
volumes:
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ./php-worker/supervisord.d:/etc/supervisord.d
|
- ./php-worker/supervisord.d:/etc/supervisord.d
|
||||||
depends_on:
|
depends_on:
|
||||||
- workspace
|
- workspace
|
||||||
@ -134,17 +168,15 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### NGINX Server Container ##################################
|
### NGINX Server #########################################
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
build:
|
build:
|
||||||
context: ./nginx
|
context: ./nginx
|
||||||
args:
|
args:
|
||||||
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
|
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
|
||||||
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
|
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
|
||||||
volumes_from:
|
|
||||||
- applications
|
|
||||||
volumes:
|
volumes:
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
|
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
|
||||||
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
|
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
|
||||||
ports:
|
ports:
|
||||||
@ -156,8 +188,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Blackfire Container #################################
|
### Blackfire ########################################
|
||||||
|
|
||||||
blackfire:
|
blackfire:
|
||||||
image: blackfire/blackfire
|
image: blackfire/blackfire
|
||||||
environment:
|
environment:
|
||||||
@ -168,8 +199,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Apache Server Container #################################
|
### Apache Server ########################################
|
||||||
|
|
||||||
apache2:
|
apache2:
|
||||||
build:
|
build:
|
||||||
context: ./apache2
|
context: ./apache2
|
||||||
@ -178,9 +208,8 @@ services:
|
|||||||
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
|
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
|
||||||
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
|
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
|
||||||
- DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
|
- DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
|
||||||
volumes_from:
|
|
||||||
- applications
|
|
||||||
volumes:
|
volumes:
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2
|
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2
|
||||||
- ${APACHE_SITES_PATH}:/etc/apache2/sites-available
|
- ${APACHE_SITES_PATH}:/etc/apache2/sites-available
|
||||||
ports:
|
ports:
|
||||||
@ -192,12 +221,11 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### HHVM Container ##########################################
|
### HHVM #################################################
|
||||||
|
|
||||||
hhvm:
|
hhvm:
|
||||||
build: ./hhvm
|
build: ./hhvm
|
||||||
volumes_from:
|
volumes:
|
||||||
- applications
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
expose:
|
expose:
|
||||||
- "9000"
|
- "9000"
|
||||||
depends_on:
|
depends_on:
|
||||||
@ -206,13 +234,12 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Minio Container #########################################
|
### Minio ################################################
|
||||||
|
|
||||||
minio:
|
minio:
|
||||||
build: ./minio
|
build: ./minio
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/minio/data:/export
|
- ${DATA_PATH_HOST}/minio/data:/export
|
||||||
- ${DATA_SAVE_PATH}/minio/config:/root/.minio
|
- ${DATA_PATH_HOST}/minio/config:/root/.minio
|
||||||
ports:
|
ports:
|
||||||
- "${MINIO_PORT}:9000"
|
- "${MINIO_PORT}:9000"
|
||||||
environment:
|
environment:
|
||||||
@ -222,8 +249,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### MySQL Container #########################################
|
### MySQL ################################################
|
||||||
|
|
||||||
mysql:
|
mysql:
|
||||||
build:
|
build:
|
||||||
context: ./mysql
|
context: ./mysql
|
||||||
@ -236,15 +262,14 @@ services:
|
|||||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||||
- TZ=${WORKSPACE_TIMEZONE}
|
- TZ=${WORKSPACE_TIMEZONE}
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
|
- ${DATA_PATH_HOST}/mysql:/var/lib/mysql
|
||||||
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||||
ports:
|
ports:
|
||||||
- "${MYSQL_PORT}:3306"
|
- "${MYSQL_PORT}:3306"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Percona Container #########################################
|
### Percona ################################################
|
||||||
|
|
||||||
percona:
|
percona:
|
||||||
build:
|
build:
|
||||||
context: ./percona
|
context: ./percona
|
||||||
@ -254,15 +279,14 @@ services:
|
|||||||
- MYSQL_PASSWORD=${PERCONA_PASSWORD}
|
- MYSQL_PASSWORD=${PERCONA_PASSWORD}
|
||||||
- MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
|
- MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/percona:/var/lib/mysql
|
- ${DATA_PATH_HOST}/percona:/var/lib/mysql
|
||||||
- ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
- ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||||
ports:
|
ports:
|
||||||
- "${PERCONA_PORT}:3306"
|
- "${PERCONA_PORT}:3306"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### MSSQL Container #########################################
|
### MSSQL ################################################
|
||||||
|
|
||||||
mssql:
|
mssql:
|
||||||
build:
|
build:
|
||||||
context: ./mssql
|
context: ./mssql
|
||||||
@ -271,18 +295,17 @@ services:
|
|||||||
- SA_PASSWORD=${MSSQL_PASSWORD}
|
- SA_PASSWORD=${MSSQL_PASSWORD}
|
||||||
- ACCEPT_EULA=Y
|
- ACCEPT_EULA=Y
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/mssql:/var/opt/mssql
|
- ${DATA_PATH_HOST}/mssql:/var/opt/mssql
|
||||||
ports:
|
ports:
|
||||||
- "${MSSQL_PORT}:1433"
|
- "${MSSQL_PORT}:1433"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### MariaDB Container #######################################
|
### MariaDB ##############################################
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
build: ./mariadb
|
build: ./mariadb
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/mariadb:/var/lib/mysql
|
- ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
|
||||||
- ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
- ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||||
ports:
|
ports:
|
||||||
- "${MARIADB_PORT}:3306"
|
- "${MARIADB_PORT}:3306"
|
||||||
@ -294,12 +317,11 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### PostgreSQL Container ####################################
|
### PostgreSQL ###########################################
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
build: ./postgres
|
build: ./postgres
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
|
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- "${POSTGRES_PORT}:5432"
|
- "${POSTGRES_PORT}:5432"
|
||||||
environment:
|
environment:
|
||||||
@ -309,12 +331,11 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### PostgreSQL PostGis Container ############################
|
### PostgreSQL PostGis ###################################
|
||||||
|
|
||||||
postgres-postgis:
|
postgres-postgis:
|
||||||
build: ./postgres-postgis
|
build: ./postgres-postgis
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
|
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- "${POSTGRES_PORT}:5432"
|
- "${POSTGRES_PORT}:5432"
|
||||||
environment:
|
environment:
|
||||||
@ -324,8 +345,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Neo4j Container #########################################
|
### Neo4j ################################################
|
||||||
|
|
||||||
neo4j:
|
neo4j:
|
||||||
build: ./neo4j
|
build: ./neo4j
|
||||||
ports:
|
ports:
|
||||||
@ -334,51 +354,46 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- NEO4J_AUTH=default:secret
|
- NEO4J_AUTH=default:secret
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/neo4j:/var/lib/neo4j/data
|
- ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### MongoDB Container #######################################
|
### MongoDB ##############################################
|
||||||
|
|
||||||
mongo:
|
mongo:
|
||||||
build: ./mongo
|
build: ./mongo
|
||||||
ports:
|
ports:
|
||||||
- "${MONGODB_PORT}:27017"
|
- "${MONGODB_PORT}:27017"
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/mongo:/data/db
|
- ${DATA_PATH_HOST}/mongo:/data/db
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### RethinkDB Container #######################################
|
### RethinkDB ##############################################
|
||||||
|
|
||||||
rethinkdb:
|
rethinkdb:
|
||||||
build: ./rethinkdb
|
build: ./rethinkdb
|
||||||
ports:
|
ports:
|
||||||
- "${RETHINKDB_PORT}:8080"
|
- "${RETHINKDB_PORT}:8080"
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/rethinkdb:/data/rethinkdb_data
|
- ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Redis Container #########################################
|
### Redis ################################################
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
build: ./redis
|
build: ./redis
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/redis:/data
|
- ${DATA_PATH_HOST}/redis:/data
|
||||||
ports:
|
ports:
|
||||||
- "${REDIS_PORT}:6379"
|
- "${REDIS_PORT}:6379"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Aerospike c Container ###################################
|
### Aerospike ##########################################
|
||||||
|
|
||||||
aerospike:
|
aerospike:
|
||||||
build: ./aerospike
|
build: ./aerospike
|
||||||
volumes_from:
|
|
||||||
- workspace
|
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/aerospike:/opt/aerospike/data
|
- workspace
|
||||||
|
- ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
|
||||||
ports:
|
ports:
|
||||||
- "${AEROSPIKE_SERVICE_PORT}:3000"
|
- "${AEROSPIKE_SERVICE_PORT}:3000"
|
||||||
- "${AEROSPIKE_FABRIC_PORT}:3001"
|
- "${AEROSPIKE_FABRIC_PORT}:3001"
|
||||||
@ -387,12 +402,11 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Memcached Container #####################################
|
### Memcached ############################################
|
||||||
|
|
||||||
memcached:
|
memcached:
|
||||||
build: ./memcached
|
build: ./memcached
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/memcached:/var/lib/memcached
|
- ${DATA_PATH_HOST}/memcached:/var/lib/memcached
|
||||||
ports:
|
ports:
|
||||||
- "${MEMCACHED_HOST_PORT}:11211"
|
- "${MEMCACHED_HOST_PORT}:11211"
|
||||||
depends_on:
|
depends_on:
|
||||||
@ -400,8 +414,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Beanstalkd Container ####################################
|
### Beanstalkd ###########################################
|
||||||
|
|
||||||
beanstalkd:
|
beanstalkd:
|
||||||
build: ./beanstalkd
|
build: ./beanstalkd
|
||||||
ports:
|
ports:
|
||||||
@ -412,8 +425,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### RabbitMQ Container ######################################
|
### RabbitMQ #############################################
|
||||||
|
|
||||||
rabbitmq:
|
rabbitmq:
|
||||||
build: ./rabbitmq
|
build: ./rabbitmq
|
||||||
ports:
|
ports:
|
||||||
@ -429,8 +441,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Beanstalkd Console Container ############################
|
### Beanstalkd Console ###################################
|
||||||
|
|
||||||
beanstalkd-console:
|
beanstalkd-console:
|
||||||
build: ./beanstalkd-console
|
build: ./beanstalkd-console
|
||||||
ports:
|
ports:
|
||||||
@ -440,16 +451,14 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Caddy Server Container ##################################
|
### Caddy Server #########################################
|
||||||
|
|
||||||
caddy:
|
caddy:
|
||||||
build: ./caddy
|
build: ./caddy
|
||||||
volumes_from:
|
|
||||||
- applications
|
|
||||||
volumes:
|
volumes:
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
|
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
|
||||||
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
|
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
|
||||||
- ${DATA_SAVE_PATH}:/root/.caddy
|
- ${DATA_PATH_HOST}:/root/.caddy
|
||||||
ports:
|
ports:
|
||||||
- "${CADDY_HOST_HTTP_PORT}:80"
|
- "${CADDY_HOST_HTTP_PORT}:80"
|
||||||
- "${CADDY_HOST_HTTPS_PORT}:443"
|
- "${CADDY_HOST_HTTPS_PORT}:443"
|
||||||
@ -459,8 +468,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### phpMyAdmin Container ####################################
|
### phpMyAdmin ###########################################
|
||||||
|
|
||||||
phpmyadmin:
|
phpmyadmin:
|
||||||
build: ./phpmyadmin
|
build: ./phpmyadmin
|
||||||
environment:
|
environment:
|
||||||
@ -476,8 +484,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Adminer Container ####################################
|
### Adminer ###########################################
|
||||||
|
|
||||||
adminer:
|
adminer:
|
||||||
build:
|
build:
|
||||||
context: ./adminer
|
context: ./adminer
|
||||||
@ -491,14 +498,13 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### pgAdmin Container #######################################
|
### pgAdmin ##############################################
|
||||||
|
|
||||||
pgadmin:
|
pgadmin:
|
||||||
build: ./pgadmin
|
build: ./pgadmin
|
||||||
ports:
|
ports:
|
||||||
- "5050:5050"
|
- "5050:5050"
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
|
- ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
networks:
|
networks:
|
||||||
@ -506,12 +512,11 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
|
||||||
### ElasticSearch Container #################################
|
### ElasticSearch ########################################
|
||||||
|
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
build: ./elasticsearch
|
build: ./elasticsearch
|
||||||
volumes:
|
volumes:
|
||||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
- elasticsearch:/usr/share/elasticsearch/data
|
||||||
environment:
|
environment:
|
||||||
- cluster.name=laradock-cluster
|
- cluster.name=laradock-cluster
|
||||||
- bootstrap.memory_lock=true
|
- bootstrap.memory_lock=true
|
||||||
@ -520,7 +525,6 @@ services:
|
|||||||
memlock:
|
memlock:
|
||||||
soft: -1
|
soft: -1
|
||||||
hard: -1
|
hard: -1
|
||||||
mem_limit: 1024m
|
|
||||||
ports:
|
ports:
|
||||||
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
|
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
|
||||||
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
|
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
|
||||||
@ -531,8 +535,7 @@ services:
|
|||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
|
||||||
### Kibana Container #######################################
|
### Kibana ##############################################
|
||||||
|
|
||||||
kibana:
|
kibana:
|
||||||
build: ./kibana
|
build: ./kibana
|
||||||
ports:
|
ports:
|
||||||
@ -543,22 +546,20 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Certbot Container ##################################
|
### Certbot #########################################
|
||||||
|
|
||||||
certbot:
|
certbot:
|
||||||
build:
|
build:
|
||||||
context: ./certbot
|
context: ./certbot
|
||||||
volumes:
|
volumes:
|
||||||
- ./data/certbot/certs/:/var/certs
|
- ./data/certbot/certs/:/var/certs
|
||||||
- ./certbot/letsencrypt/:/var/www/letsencrypt
|
- ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
|
||||||
environment:
|
environment:
|
||||||
- CN="fake.domain.com"
|
- CN="fake.domain.com"
|
||||||
- EMAIL="fake.email@gmail.com"
|
- EMAIL="fake.email@gmail.com"
|
||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
|
|
||||||
### Mailhog Container #########################################
|
### Mailhog ################################################
|
||||||
|
|
||||||
mailhog:
|
mailhog:
|
||||||
build: ./mailhog
|
build: ./mailhog
|
||||||
ports:
|
ports:
|
||||||
@ -568,8 +569,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### MailDev Container #######################################
|
### MailDev ##############################################
|
||||||
|
|
||||||
maildev:
|
maildev:
|
||||||
build: ./maildev
|
build: ./maildev
|
||||||
ports:
|
ports:
|
||||||
@ -579,8 +579,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Selenium Container ########################################
|
### Selenium ###############################################
|
||||||
|
|
||||||
selenium:
|
selenium:
|
||||||
build: ./selenium
|
build: ./selenium
|
||||||
ports:
|
ports:
|
||||||
@ -590,8 +589,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
|
|
||||||
### Varnish Proxy 1 ##########################################
|
### Varnish ##########################################
|
||||||
|
|
||||||
proxy:
|
proxy:
|
||||||
build: ./varnish
|
build: ./varnish
|
||||||
expose:
|
expose:
|
||||||
@ -609,8 +607,6 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
|
|
||||||
### Varnish Proxy 2 ##########################################
|
|
||||||
|
|
||||||
proxy2:
|
proxy2:
|
||||||
build: ./varnish
|
build: ./varnish
|
||||||
expose:
|
expose:
|
||||||
@ -628,8 +624,7 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- frontend
|
- frontend
|
||||||
|
|
||||||
### HAProxy Load Balancer ####################################
|
### HAProxy ####################################
|
||||||
|
|
||||||
haproxy:
|
haproxy:
|
||||||
build: ./haproxy
|
build: ./haproxy
|
||||||
ports:
|
ports:
|
||||||
@ -641,7 +636,6 @@ services:
|
|||||||
- proxy2
|
- proxy2
|
||||||
|
|
||||||
### Jenkins ###################################################
|
### Jenkins ###################################################
|
||||||
|
|
||||||
jenkins:
|
jenkins:
|
||||||
build: ./jenkins
|
build: ./jenkins
|
||||||
environment:
|
environment:
|
||||||
@ -657,13 +651,12 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Grafana Container #########################################
|
### Grafana ################################################
|
||||||
|
|
||||||
grafana:
|
grafana:
|
||||||
build:
|
build:
|
||||||
context: ./grafana
|
context: ./grafana
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/grafana:/var/lib/grafana
|
- ${DATA_PATH_HOST}/grafana:/var/lib/grafana
|
||||||
ports:
|
ports:
|
||||||
- "${GRAFANA_PORT}:3000"
|
- "${GRAFANA_PORT}:3000"
|
||||||
networks:
|
networks:
|
||||||
@ -683,8 +676,7 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### Solr Container #########################################
|
### Solr ################################################
|
||||||
|
|
||||||
solr:
|
solr:
|
||||||
build:
|
build:
|
||||||
context: ./solr
|
context: ./solr
|
||||||
@ -692,62 +684,29 @@ services:
|
|||||||
- SOLR_VERSION=${SOLR_VERSION}
|
- SOLR_VERSION=${SOLR_VERSION}
|
||||||
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
|
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_SAVE_PATH}/solr:/opt/solr/server/solr/mycores
|
- ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
|
||||||
ports:
|
ports:
|
||||||
- "${SOLR_PORT}:8983"
|
- "${SOLR_PORT}:8983"
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
### AWS EB-CLI ####
|
### AWS EB-CLI ################################################
|
||||||
aws:
|
aws:
|
||||||
build:
|
build:
|
||||||
context: ./aws
|
context: ./aws
|
||||||
volumes_from:
|
volumes:
|
||||||
- applications
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
depends_on:
|
depends_on:
|
||||||
- workspace
|
- workspace
|
||||||
tty: true
|
tty: true
|
||||||
|
|
||||||
### Networks Setup ############################################
|
### Portainer ################################################
|
||||||
|
portainer:
|
||||||
networks:
|
build:
|
||||||
frontend:
|
context: ./portainer
|
||||||
driver: "bridge"
|
volumes:
|
||||||
backend:
|
- ${DATA_PATH_HOST}/portainer_data:/data
|
||||||
driver: "bridge"
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
ports:
|
||||||
### Volumes Setup #############################################
|
- 9010:9000
|
||||||
|
|
||||||
volumes:
|
|
||||||
mysql:
|
|
||||||
driver: "local"
|
|
||||||
percona:
|
|
||||||
driver: "local"
|
|
||||||
mssql:
|
|
||||||
driver: "local"
|
|
||||||
postgres:
|
|
||||||
driver: "local"
|
|
||||||
memcached:
|
|
||||||
driver: "local"
|
|
||||||
redis:
|
|
||||||
driver: "local"
|
|
||||||
neo4j:
|
|
||||||
driver: "local"
|
|
||||||
mariadb:
|
|
||||||
driver: "local"
|
|
||||||
mongo:
|
|
||||||
driver: "local"
|
|
||||||
minio:
|
|
||||||
driver: "local"
|
|
||||||
rethinkdb:
|
|
||||||
driver: "local"
|
|
||||||
phpmyadmin:
|
|
||||||
driver: "local"
|
|
||||||
adminer:
|
|
||||||
driver: "local"
|
|
||||||
aerospike:
|
|
||||||
driver: "local"
|
|
||||||
caddy:
|
|
||||||
driver: "local"
|
|
||||||
elasticsearch-data:
|
|
||||||
driver: "local"
|
|
||||||
|
@ -6,7 +6,7 @@ syncs:
|
|||||||
applications-docker-sync: # name of the intermediary sync volume
|
applications-docker-sync: # name of the intermediary sync volume
|
||||||
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
|
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
|
||||||
|
|
||||||
src: '${APPLICATION}' # host source directory
|
src: '${APP_CODE_PATH_HOST}' # host source directory
|
||||||
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
|
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
|
||||||
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
||||||
|
|
||||||
|
204
env-example
204
env-example
@ -1,81 +1,97 @@
|
|||||||
###########################################################
|
###########################################################
|
||||||
# General Setup
|
###################### General Setup ######################
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
### Application Path ###################################################################################################
|
### Paths #################################################
|
||||||
# Point to your code, will be available at `/var/www`.
|
|
||||||
|
|
||||||
APPLICATION=../
|
# Point to the path of your applications code on your host
|
||||||
|
APP_CODE_PATH_HOST=../
|
||||||
|
|
||||||
### PHP Version ########################################################################################################
|
# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
|
||||||
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 72 - 71 - 70 - 56
|
APP_CODE_PATH_CONTAINER=/var/www:cached
|
||||||
|
|
||||||
PHP_VERSION=72
|
# Choose storage path on your machine. For all storage systems
|
||||||
|
DATA_PATH_HOST=~/.laradock/data
|
||||||
|
|
||||||
|
### Drivers ################################################
|
||||||
|
|
||||||
|
# All volumes driver
|
||||||
|
VOLUMES_DRIVER=local
|
||||||
|
|
||||||
|
# All Networks driver
|
||||||
|
NETWORKS_DRIVER=bridge
|
||||||
|
|
||||||
|
### Docker compose files ##################################
|
||||||
|
|
||||||
|
# Select which docker-compose files to include. If using docker-sync append `:docker-compose.sync.yml` at the end
|
||||||
|
COMPOSE_FILE=docker-compose.yml
|
||||||
|
|
||||||
|
# Change the separator from : to ; on Windows
|
||||||
|
COMPOSE_PATH_SEPARATOR=:
|
||||||
|
|
||||||
|
### PHP Version ###########################################
|
||||||
|
|
||||||
|
# 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
|
||||||
|
PHP_VERSION=7.2
|
||||||
|
|
||||||
|
### PHP Interpreter #######################################
|
||||||
|
|
||||||
### PHP Interpreter ####################################################################################################
|
|
||||||
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
||||||
|
|
||||||
PHP_INTERPRETER=php-fpm
|
PHP_INTERPRETER=php-fpm
|
||||||
|
|
||||||
### Data Path ##########################################################################################################
|
### Docker Host IP ########################################
|
||||||
# Choose storage path on your machine. For all storage systems.
|
|
||||||
|
|
||||||
DATA_SAVE_PATH=~/.laradock/data
|
|
||||||
|
|
||||||
### Docker compose files ###############################################################################################
|
|
||||||
# Select which docker-compose files to include.
|
|
||||||
# If using docker-sync. Set the value to: docker-compose.yml:docker-compose.dev.yml:docker-compose.sync.yml
|
|
||||||
# Change the separator from : to ; on Windows
|
|
||||||
|
|
||||||
COMPOSE_PATH_SEPARATOR=:
|
|
||||||
COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
|
|
||||||
|
|
||||||
### Docker Host IP #####################################################################################################
|
|
||||||
# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
|
# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
|
||||||
|
|
||||||
DOCKER_HOST_IP=10.0.75.1
|
DOCKER_HOST_IP=10.0.75.1
|
||||||
|
|
||||||
### Remote Interpreter #################################################################################################
|
### Remote Interpreter ####################################
|
||||||
# Choose a Remote Interpreter entry matching name. Default is `laradock`
|
|
||||||
|
|
||||||
|
# Choose a Remote Interpreter entry matching name. Default is `laradock`
|
||||||
PHP_IDE_CONFIG=serverName=laradock
|
PHP_IDE_CONFIG=serverName=laradock
|
||||||
|
|
||||||
### Windows Path #######################################################################################################
|
### Windows Path ##########################################
|
||||||
# A fix for Windows users, to ensure the application path works.
|
|
||||||
|
|
||||||
|
# A fix for Windows users, to ensure the application path works
|
||||||
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||||
|
|
||||||
### Environment ########################################################################################################
|
### Environment ###########################################
|
||||||
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
|
|
||||||
|
|
||||||
|
# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
|
||||||
CHANGE_SOURCE=false
|
CHANGE_SOURCE=false
|
||||||
|
|
||||||
########################################################################################################################
|
### Docker Sync ###########################################
|
||||||
|
|
||||||
|
# If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required
|
||||||
|
DOCKER_SYNC_STRATEGY=native_osx
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
# Containers Customization
|
################ Containers Customization #################
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
### WORKSPACE ##########################################################################################################
|
### WORKSPACE #############################################
|
||||||
|
|
||||||
|
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
||||||
|
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
||||||
|
WORKSPACE_INSTALL_NODE=true
|
||||||
|
WORKSPACE_NODE_VERSION=stable
|
||||||
|
WORKSPACE_NPM_REGISTRY=
|
||||||
|
WORKSPACE_INSTALL_YARN=true
|
||||||
|
WORKSPACE_YARN_VERSION=latest
|
||||||
|
WORKSPACE_INSTALL_PHPREDIS=true
|
||||||
|
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||||
|
WORKSPACE_INSTALL_SUBVERSION=false
|
||||||
WORKSPACE_INSTALL_XDEBUG=false
|
WORKSPACE_INSTALL_XDEBUG=false
|
||||||
WORKSPACE_INSTALL_LDAP=false
|
WORKSPACE_INSTALL_LDAP=false
|
||||||
WORKSPACE_INSTALL_SOAP=false
|
WORKSPACE_INSTALL_SOAP=false
|
||||||
WORKSPACE_INSTALL_IMAP=false
|
WORKSPACE_INSTALL_IMAP=false
|
||||||
WORKSPACE_INSTALL_MONGO=false
|
WORKSPACE_INSTALL_MONGO=false
|
||||||
WORKSPACE_INSTALL_AMQP=false
|
WORKSPACE_INSTALL_AMQP=false
|
||||||
WORKSPACE_INSTALL_PHPREDIS=false
|
|
||||||
WORKSPACE_INSTALL_MSSQL=false
|
WORKSPACE_INSTALL_MSSQL=false
|
||||||
WORKSPACE_INSTALL_NODE=false
|
|
||||||
WORKSPACE_NPM_REGISTRY=
|
|
||||||
WORKSPACE_INSTALL_YARN=false
|
|
||||||
WORKSPACE_INSTALL_DRUSH=false
|
WORKSPACE_INSTALL_DRUSH=false
|
||||||
|
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||||
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
||||||
WORKSPACE_INSTALL_AEROSPIKE=false
|
WORKSPACE_INSTALL_AEROSPIKE=false
|
||||||
WORKSPACE_INSTALL_V8JS=false
|
WORKSPACE_INSTALL_V8JS=false
|
||||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
|
||||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
|
||||||
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
||||||
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
|
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
|
||||||
WORKSPACE_INSTALL_DEPLOYER=false
|
WORKSPACE_INSTALL_DEPLOYER=false
|
||||||
@ -93,43 +109,42 @@ WORKSPACE_INSTALL_SWOOLE=false
|
|||||||
WORKSPACE_PUID=1000
|
WORKSPACE_PUID=1000
|
||||||
WORKSPACE_PGID=1000
|
WORKSPACE_PGID=1000
|
||||||
WORKSPACE_CHROME_DRIVER_VERSION=2.32
|
WORKSPACE_CHROME_DRIVER_VERSION=2.32
|
||||||
WORKSPACE_NODE_VERSION=stable
|
|
||||||
WORKSPACE_YARN_VERSION=latest
|
|
||||||
WORKSPACE_TIMEZONE=UTC
|
WORKSPACE_TIMEZONE=UTC
|
||||||
WORKSPACE_SSH_PORT=2222
|
WORKSPACE_SSH_PORT=2222
|
||||||
|
|
||||||
### PHP_FPM ############################################################################################################
|
### PHP_FPM ###############################################
|
||||||
|
|
||||||
|
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
||||||
|
PHP_FPM_INSTALL_BCMATH=true
|
||||||
|
PHP_FPM_INSTALL_MYSQLI=true
|
||||||
|
PHP_FPM_INSTALL_TOKENIZER=true
|
||||||
|
PHP_FPM_INSTALL_INTL=true
|
||||||
|
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
||||||
|
PHP_FPM_INSTALL_OPCACHE=true
|
||||||
|
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
||||||
|
PHP_FPM_INSTALL_PHPREDIS=true
|
||||||
|
PHP_FPM_INSTALL_MEMCACHED=false
|
||||||
PHP_FPM_INSTALL_XDEBUG=false
|
PHP_FPM_INSTALL_XDEBUG=false
|
||||||
PHP_FPM_INSTALL_IMAP=false
|
PHP_FPM_INSTALL_IMAP=false
|
||||||
PHP_FPM_INSTALL_MONGO=false
|
PHP_FPM_INSTALL_MONGO=false
|
||||||
PHP_FPM_INSTALL_AMQP=false
|
PHP_FPM_INSTALL_AMQP=false
|
||||||
PHP_FPM_INSTALL_MSSQL=false
|
PHP_FPM_INSTALL_MSSQL=false
|
||||||
PHP_FPM_INSTALL_SOAP=false
|
PHP_FPM_INSTALL_SOAP=false
|
||||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=false
|
|
||||||
PHP_FPM_INSTALL_BCMATH=false
|
|
||||||
PHP_FPM_INSTALL_GMP=false
|
PHP_FPM_INSTALL_GMP=false
|
||||||
PHP_FPM_INSTALL_PHPREDIS=false
|
|
||||||
PHP_FPM_INSTALL_MEMCACHED=false
|
|
||||||
PHP_FPM_INSTALL_OPCACHE=false
|
|
||||||
PHP_FPM_INSTALL_EXIF=false
|
PHP_FPM_INSTALL_EXIF=false
|
||||||
PHP_FPM_INSTALL_AEROSPIKE=false
|
PHP_FPM_INSTALL_AEROSPIKE=false
|
||||||
PHP_FPM_INSTALL_MYSQLI=false
|
|
||||||
PHP_FPM_INSTALL_PGSQL=false
|
PHP_FPM_INSTALL_PGSQL=false
|
||||||
PHP_FPM_INSTALL_TOKENIZER=false
|
|
||||||
PHP_FPM_INSTALL_INTL=false
|
|
||||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||||
PHP_FPM_INSTALL_LDAP=false
|
PHP_FPM_INSTALL_LDAP=false
|
||||||
PHP_FPM_INSTALL_SWOOLE=false
|
PHP_FPM_INSTALL_SWOOLE=false
|
||||||
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
|
|
||||||
PHP_FPM_INSTALL_IMAGEMAGICK=false
|
|
||||||
PHP_FPM_INSTALL_PG_CLIENT=false
|
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||||
|
PHP_FPM_INSTALL_PCNTL=false
|
||||||
|
|
||||||
### PHP_WORKER #########################################################################################################
|
### PHP_WORKER ############################################
|
||||||
|
|
||||||
PHP_WORKER_INSTALL_PGSQL=false
|
PHP_WORKER_INSTALL_PGSQL=false
|
||||||
|
|
||||||
### NGINX ##############################################################################################################
|
### NGINX #################################################
|
||||||
|
|
||||||
NGINX_HOST_HTTP_PORT=80
|
NGINX_HOST_HTTP_PORT=80
|
||||||
NGINX_HOST_HTTPS_PORT=443
|
NGINX_HOST_HTTPS_PORT=443
|
||||||
@ -138,7 +153,7 @@ NGINX_SITES_PATH=./nginx/sites/
|
|||||||
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
|
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
|
||||||
NGINX_PHP_UPSTREAM_PORT=9000
|
NGINX_PHP_UPSTREAM_PORT=9000
|
||||||
|
|
||||||
### APACHE #############################################################################################################
|
### APACHE ################################################
|
||||||
|
|
||||||
APACHE_HOST_HTTP_PORT=80
|
APACHE_HOST_HTTP_PORT=80
|
||||||
APACHE_HOST_HTTPS_PORT=443
|
APACHE_HOST_HTTPS_PORT=443
|
||||||
@ -149,7 +164,7 @@ APACHE_PHP_UPSTREAM_PORT=9000
|
|||||||
APACHE_PHP_UPSTREAM_TIMEOUT=60
|
APACHE_PHP_UPSTREAM_TIMEOUT=60
|
||||||
APACHE_DOCUMENT_ROOT=/var/www/
|
APACHE_DOCUMENT_ROOT=/var/www/
|
||||||
|
|
||||||
### MYSQL ##############################################################################################################
|
### MYSQL #################################################
|
||||||
|
|
||||||
MYSQL_VERSION=latest
|
MYSQL_VERSION=latest
|
||||||
MYSQL_DATABASE=default
|
MYSQL_DATABASE=default
|
||||||
@ -159,11 +174,11 @@ MYSQL_PORT=3306
|
|||||||
MYSQL_ROOT_PASSWORD=root
|
MYSQL_ROOT_PASSWORD=root
|
||||||
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### REDIS ##############################################################################################################
|
### REDIS #################################################
|
||||||
|
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
|
|
||||||
### Percona ############################################################################################################
|
### Percona ###############################################
|
||||||
|
|
||||||
PERCONA_DATABASE=homestead
|
PERCONA_DATABASE=homestead
|
||||||
PERCONA_USER=homestead
|
PERCONA_USER=homestead
|
||||||
@ -172,13 +187,13 @@ PERCONA_PORT=3306
|
|||||||
PERCONA_ROOT_PASSWORD=root
|
PERCONA_ROOT_PASSWORD=root
|
||||||
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
|
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### MSSQL ##############################################################################################################
|
### MSSQL #################################################
|
||||||
|
|
||||||
MSSQL_DATABASE=homestead
|
MSSQL_DATABASE=homestead
|
||||||
MSSQL_PASSWORD=yourStrong(!)Password
|
MSSQL_PASSWORD=yourStrong(!)Password
|
||||||
MSSQL_PORT=1433
|
MSSQL_PORT=1433
|
||||||
|
|
||||||
### MARIADB ############################################################################################################
|
### MARIADB ###############################################
|
||||||
|
|
||||||
MARIADB_DATABASE=default
|
MARIADB_DATABASE=default
|
||||||
MARIADB_USER=default
|
MARIADB_USER=default
|
||||||
@ -187,14 +202,14 @@ MARIADB_PORT=3306
|
|||||||
MARIADB_ROOT_PASSWORD=root
|
MARIADB_ROOT_PASSWORD=root
|
||||||
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
|
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### POSTGRES ###########################################################################################################
|
### POSTGRES ##############################################
|
||||||
|
|
||||||
POSTGRES_DB=default
|
POSTGRES_DB=default
|
||||||
POSTGRES_USER=default
|
POSTGRES_USER=default
|
||||||
POSTGRES_PASSWORD=secret
|
POSTGRES_PASSWORD=secret
|
||||||
POSTGRES_PORT=5432
|
POSTGRES_PORT=5432
|
||||||
|
|
||||||
### RABBITMQ ###########################################################################################################
|
### RABBITMQ ##############################################
|
||||||
|
|
||||||
RABBITMQ_NODE_HOST_PORT=5672
|
RABBITMQ_NODE_HOST_PORT=5672
|
||||||
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
|
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
|
||||||
@ -202,43 +217,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
|
|||||||
RABBITMQ_DEFAULT_USER=guest
|
RABBITMQ_DEFAULT_USER=guest
|
||||||
RABBITMQ_DEFAULT_PASS=guest
|
RABBITMQ_DEFAULT_PASS=guest
|
||||||
|
|
||||||
### ELASTICSEARCH ######################################################################################################
|
### ELASTICSEARCH #########################################
|
||||||
|
|
||||||
ELASTICSEARCH_HOST_HTTP_PORT=9200
|
ELASTICSEARCH_HOST_HTTP_PORT=9200
|
||||||
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
|
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
|
||||||
|
|
||||||
### KIBANA #############################################################################################################
|
### KIBANA ################################################
|
||||||
|
|
||||||
KIBANA_HTTP_PORT=5601
|
KIBANA_HTTP_PORT=5601
|
||||||
|
|
||||||
### MEMCACHED ##########################################################################################################
|
### MEMCACHED #############################################
|
||||||
|
|
||||||
MEMCACHED_HOST_PORT=11211
|
MEMCACHED_HOST_PORT=11211
|
||||||
|
|
||||||
### BEANSTALKD CONSOLE #################################################################################################
|
### BEANSTALKD CONSOLE ####################################
|
||||||
|
|
||||||
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
|
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
|
||||||
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
|
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
|
||||||
BEANSTALKD_CONSOLE_HOST_PORT=2080
|
BEANSTALKD_CONSOLE_HOST_PORT=2080
|
||||||
|
|
||||||
### BEANSTALKD #########################################################################################################
|
### BEANSTALKD ############################################
|
||||||
|
|
||||||
BEANSTALKD_HOST_PORT=11300
|
BEANSTALKD_HOST_PORT=11300
|
||||||
|
|
||||||
### SELENIUM ###########################################################################################################
|
### SELENIUM ##############################################
|
||||||
|
|
||||||
SELENIUM_PORT=4444
|
SELENIUM_PORT=4444
|
||||||
|
|
||||||
### MINIO ##############################################################################################################
|
### MINIO #################################################
|
||||||
|
|
||||||
MINIO_PORT=9000
|
MINIO_PORT=9000
|
||||||
|
|
||||||
### ADMINER ############################################################################################################
|
### ADMINER ###############################################
|
||||||
|
|
||||||
ADM_PORT=8080
|
ADM_PORT=8080
|
||||||
ADM_INSTALL_MSSQL=false
|
ADM_INSTALL_MSSQL=false
|
||||||
|
|
||||||
### PHP MY ADMIN #######################################################################################################
|
### PHP MY ADMIN ##########################################
|
||||||
|
|
||||||
# Accepted values: mariadb - mysql
|
# Accepted values: mariadb - mysql
|
||||||
|
|
||||||
@ -251,95 +266,86 @@ PMA_PASSWORD=secret
|
|||||||
PMA_ROOT_PASSWORD=secret
|
PMA_ROOT_PASSWORD=secret
|
||||||
PMA_PORT=8080
|
PMA_PORT=8080
|
||||||
|
|
||||||
### MAILDEV ############################################################################################################
|
### MAILDEV ###############################################
|
||||||
|
|
||||||
MAILDEV_HTTP_PORT=1080
|
MAILDEV_HTTP_PORT=1080
|
||||||
MAILDEV_SMTP_PORT=25
|
MAILDEV_SMTP_PORT=25
|
||||||
|
|
||||||
### VARNISH ############################################################################################################
|
### VARNISH ###############################################
|
||||||
|
|
||||||
VARNISH_CONFIG=/etc/varnish/default.vcl
|
VARNISH_CONFIG=/etc/varnish/default.vcl
|
||||||
VARNISH_PORT=8080
|
VARNISH_PORT=8080
|
||||||
VARNISH_BACKEND_PORT=8888
|
VARNISH_BACKEND_PORT=8888
|
||||||
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
|
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
|
||||||
|
|
||||||
### Varnish ############################################################################################################
|
### Varnish ###############################################
|
||||||
|
|
||||||
# Proxy 1
|
# Proxy 1
|
||||||
|
|
||||||
VARNISH_PROXY1_CACHE_SIZE=128m
|
VARNISH_PROXY1_CACHE_SIZE=128m
|
||||||
VARNISH_PROXY1_BACKEND_HOST=workspace
|
VARNISH_PROXY1_BACKEND_HOST=workspace
|
||||||
VARNISH_PROXY1_SERVER=SERVER1
|
VARNISH_PROXY1_SERVER=SERVER1
|
||||||
|
|
||||||
# Proxy 2
|
# Proxy 2
|
||||||
|
|
||||||
VARNISH_PROXY2_CACHE_SIZE=128m
|
VARNISH_PROXY2_CACHE_SIZE=128m
|
||||||
VARNISH_PROXY2_BACKEND_HOST=workspace
|
VARNISH_PROXY2_BACKEND_HOST=workspace
|
||||||
VARNISH_PROXY2_SERVER=SERVER2
|
VARNISH_PROXY2_SERVER=SERVER2
|
||||||
|
|
||||||
### HAPROXY ############################################################################################################
|
### HAPROXY ###############################################
|
||||||
|
|
||||||
HAPROXY_HOST_HTTP_PORT=8085
|
HAPROXY_HOST_HTTP_PORT=8085
|
||||||
|
|
||||||
### JENKINS ############################################################################################################
|
### JENKINS ###############################################
|
||||||
|
|
||||||
JENKINS_HOST_HTTP_PORT=8090
|
JENKINS_HOST_HTTP_PORT=8090
|
||||||
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
||||||
JENKINS_HOME=./jenkins/jenkins_home
|
JENKINS_HOME=./jenkins/jenkins_home
|
||||||
|
|
||||||
### GRAFANA ############################################################################################################
|
### GRAFANA ###############################################
|
||||||
|
|
||||||
GRAFANA_PORT=3000
|
GRAFANA_PORT=3000
|
||||||
|
|
||||||
### BLACKFIRE ##########################################################################################################
|
### BLACKFIRE #############################################
|
||||||
|
|
||||||
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time.
|
|
||||||
# visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
|
|
||||||
|
|
||||||
|
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
|
||||||
INSTALL_BLACKFIRE=false
|
INSTALL_BLACKFIRE=false
|
||||||
BLACKFIRE_CLIENT_ID=<client_id>
|
BLACKFIRE_CLIENT_ID=<client_id>
|
||||||
BLACKFIRE_CLIENT_TOKEN=<client_token>
|
BLACKFIRE_CLIENT_TOKEN=<client_token>
|
||||||
BLACKFIRE_SERVER_ID=<server_id>
|
BLACKFIRE_SERVER_ID=<server_id>
|
||||||
BLACKFIRE_SERVER_TOKEN=<server_token>
|
BLACKFIRE_SERVER_TOKEN=<server_token>
|
||||||
|
|
||||||
### AEROSPIKE ##########################################################################################################
|
### AEROSPIKE #############################################
|
||||||
|
|
||||||
AEROSPIKE_SERVICE_PORT=3000
|
AEROSPIKE_SERVICE_PORT=3000
|
||||||
AEROSPIKE_FABRIC_PORT=3001
|
AEROSPIKE_FABRIC_PORT=3001
|
||||||
AEROSPIKE_HEARTBEAT_PORT=3002
|
AEROSPIKE_HEARTBEAT_PORT=3002
|
||||||
AEROSPIKE_INFO_PORT=3003
|
AEROSPIKE_INFO_PORT=3003
|
||||||
|
|
||||||
### RETHINKDB ##########################################################################################################
|
## 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-release-candidate.tar.gz"
|
||||||
|
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
|
||||||
|
|
||||||
|
### RETHINKDB #############################################
|
||||||
|
|
||||||
RETHINKDB_PORT=8090
|
RETHINKDB_PORT=8090
|
||||||
|
|
||||||
### MONGODB ############################################################################################################
|
### MONGODB ###############################################
|
||||||
|
|
||||||
MONGODB_PORT=27017
|
MONGODB_PORT=27017
|
||||||
|
|
||||||
### CADDY ##############################################################################################################
|
### CADDY #################################################
|
||||||
|
|
||||||
CADDY_HOST_HTTP_PORT=80
|
CADDY_HOST_HTTP_PORT=80
|
||||||
CADDY_HOST_HTTPS_PORT=443
|
CADDY_HOST_HTTPS_PORT=443
|
||||||
CADDY_HOST_LOG_PATH=./logs/caddy
|
CADDY_HOST_LOG_PATH=./logs/caddy
|
||||||
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
|
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
|
||||||
|
|
||||||
### LARAVEL ECHO SERVER ################################################################################################
|
### LARAVEL ECHO SERVER ###################################
|
||||||
|
|
||||||
LARAVEL_ECHO_SERVER_PORT=6001
|
LARAVEL_ECHO_SERVER_PORT=6001
|
||||||
|
|
||||||
### SOLR ###############################################################################################################
|
### SOLR ##################################################
|
||||||
|
|
||||||
SOLR_VERSION=5.5
|
SOLR_VERSION=5.5
|
||||||
SOLR_PORT=8983
|
SOLR_PORT=8983
|
||||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||||
|
|
||||||
### DOCKER-SYNC ################################################################################################
|
|
||||||
|
|
||||||
# osx: 'native_osx' (default)
|
|
||||||
# windows: 'unison'
|
|
||||||
# linux: docker-sync not required
|
|
||||||
|
|
||||||
DOCKER_SYNC_STRATEGY=native_osx
|
|
||||||
|
|
||||||
########################################################################################################################
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
FROM docker.elastic.co/kibana/kibana:5.4.1
|
FROM docker.elastic.co/kibana/kibana:6.2.3
|
||||||
|
|
||||||
EXPOSE 5601
|
EXPOSE 5601
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
###
|
###
|
||||||
### this sql script is auto run when mariadb container start and $DATA_SAVE_PATH/mariadb not exists.
|
### this sql script is auto run when mariadb container start and $DATA_PATH_HOST/mariadb not exists.
|
||||||
###
|
###
|
||||||
### if your $DATA_SAVE_PATH/mariadb is exists and you do not want to delete it, you can run by manual execution:
|
### if your $DATA_PATH_HOST/mariadb is exists and you do not want to delete it, you can run by manual execution:
|
||||||
###
|
###
|
||||||
### docker-compose exec mariadb bash
|
### docker-compose exec mariadb bash
|
||||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# this sql script will auto run when the mysql container starts and the $DATA_SAVE_PATH/mysql not found.
|
# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found.
|
||||||
#
|
#
|
||||||
# if your $DATA_SAVE_PATH/mysql exists and you do not want to delete it, you can run by manual execution:
|
# if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution:
|
||||||
#
|
#
|
||||||
# docker-compose exec mysql bash
|
# docker-compose exec mysql bash
|
||||||
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
###
|
###
|
||||||
### this sql script is auto run when percona container start and $DATA_SAVE_PATH/percona not exists.
|
### this sql script is auto run when percona container start and $DATA_PATH_HOST/percona not exists.
|
||||||
###
|
###
|
||||||
### if your $DATA_SAVE_PATH/percona is exists and you do not want to delete it, you can run by manual execution:
|
### if your $DATA_PATH_HOST/percona is exists and you do not want to delete it, you can run by manual execution:
|
||||||
###
|
###
|
||||||
### docker-compose exec percona bash
|
### docker-compose exec percona bash
|
||||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
476
php-fpm/Dockerfile
Normal file
476
php-fpm/Dockerfile
Normal file
@ -0,0 +1,476 @@
|
|||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# 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}
|
||||||
|
#
|
||||||
|
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
|
FROM laradock/php-fpm:2.2-${PHP_VERSION}
|
||||||
|
|
||||||
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
|
# always run apt update when start and after add new source list, then clean up at end.
|
||||||
|
RUN apt-get update -yqq && \
|
||||||
|
pecl channel-update pecl.php.net
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# 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
|
||||||
|
rm /etc/apt/preferences.d/no-debian-php && \
|
||||||
|
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
|
||||||
|
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 install -y postgresql-client \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# xDebug:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_XDEBUG=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
|
# Install the xdebug extension
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
pecl install xdebug-2.5.5; \
|
||||||
|
else \
|
||||||
|
pecl install xdebug; \
|
||||||
|
fi && \
|
||||||
|
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
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
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
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_SWOOLE=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||||
|
# Install Php Swoole Extension
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
pecl install swoole-2.0.11; \
|
||||||
|
else \
|
||||||
|
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||||
|
pecl install swoole-2.2.0; \
|
||||||
|
else \
|
||||||
|
pecl install swoole; \
|
||||||
|
fi \
|
||||||
|
fi && \
|
||||||
|
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 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
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# pcntl
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_PCNTL=false
|
||||||
|
RUN if [ ${INSTALL_PCNTL} = true]; then \
|
||||||
|
# Installs pcntl, helpful for running Horizon
|
||||||
|
docker-php-ext-install pcntl \
|
||||||
|
;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 install -y libgmp-dev && \
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
|
||||||
|
;fi && \
|
||||||
|
docker-php-ext-install gmp \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# PHP Memcached:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||||
|
# Install the php memcached extension
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
|
||||||
|
else \
|
||||||
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz"; \
|
||||||
|
fi \
|
||||||
|
&& 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
|
||||||
|
ARG AEROSPIKE_PHP_REPOSITORY
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||||
|
# Fix dependencies for PHPUnit within aerospike extension
|
||||||
|
apt-get -y install sudo wget && \
|
||||||
|
# Install the php aerospike extension
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
curl -L -o /tmp/aerospike-client-php.tar.gz https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz; \
|
||||||
|
else \
|
||||||
|
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY}; \
|
||||||
|
fi \
|
||||||
|
&& 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 \
|
||||||
|
&& 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 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 install -y \
|
||||||
|
poppler-utils \
|
||||||
|
ghostscript \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# LDAP:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_LDAP=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||||
|
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
|
||||||
|
|
||||||
|
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
apt-get -y install freetds-dev libsybdb5 \
|
||||||
|
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \
|
||||||
|
&& docker-php-ext-install mssql pdo_dblib \
|
||||||
|
&& php -m | grep -q 'mssql' \
|
||||||
|
&& php -m | grep -q 'pdo_dblib' \
|
||||||
|
;else \
|
||||||
|
###########################################################################
|
||||||
|
# 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 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 \
|
||||||
|
# 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 \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Image optimizers:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||||
|
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# ImageMagick:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_IMAGEMAGICK=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
||||||
|
apt-get install -y libmagickwand-dev imagemagick && \
|
||||||
|
pecl install imagick && \
|
||||||
|
docker-php-ext-enable imagick \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# IMAP:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_IMAP=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||||
|
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:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
|
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||||
|
|
||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Final Touch
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
COPY ./laravel.ini /usr/local/etc/php/conf.d
|
||||||
|
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
WORKDIR /var/www
|
||||||
|
|
||||||
|
CMD ["php-fpm"]
|
||||||
|
|
||||||
|
EXPOSE 9000
|
@ -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
|
|
@ -1,397 +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-72
|
|
||||||
|
|
||||||
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 \
|
|
||||||
# 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 && \
|
|
||||||
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 (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 \
|
|
||||||
&& 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 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 \
|
|
||||||
# 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.2."
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Final Touch
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
|
|
||||||
COPY ./laravel.ini /usr/local/etc/php/conf.d
|
|
||||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
|
|
||||||
|
|
||||||
#RUN rm -r /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
|
||||||
|
|
||||||
WORKDIR /var/www
|
|
||||||
|
|
||||||
CMD ["php-fpm"]
|
|
||||||
|
|
||||||
EXPOSE 9000
|
|
@ -4,7 +4,8 @@
|
|||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM php:7.2-alpine
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
FROM php:${PHP_VERSION}-alpine
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
@ -21,7 +22,7 @@ RUN apk --update add wget \
|
|||||||
libgsasl-dev \
|
libgsasl-dev \
|
||||||
supervisor
|
supervisor
|
||||||
|
|
||||||
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml
|
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
|
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
|
||||||
|
|
||||||
# Install PostgreSQL drivers:
|
# Install PostgreSQL drivers:
|
||||||
@ -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/
|
|
3
portainer/Dockerfile
Normal file
3
portainer/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM portainer/portainer
|
||||||
|
|
||||||
|
LABEL maintainer="luciano@lucianojr.com.br"
|
@ -12,19 +12,38 @@
|
|||||||
# Note: Base Image name format {image-tag}-{php-version}
|
# Note: Base Image name format {image-tag}-{php-version}
|
||||||
#
|
#
|
||||||
|
|
||||||
FROM laradock/workspace:2.0-71
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
|
FROM laradock/workspace:2.2-${PHP_VERSION}
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
|
# Start as root
|
||||||
RUN rm /var/log/lastlog /var/log/faillog
|
USER root
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Laradock non-root user:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||||
|
ARG PUID=1000
|
||||||
|
ENV PUID ${PUID}
|
||||||
|
ARG PGID=1000
|
||||||
|
ENV PGID ${PGID}
|
||||||
|
|
||||||
|
# always run apt update when start and after add new source list, then clean up at end.
|
||||||
|
RUN apt-get update -yqq && \
|
||||||
|
pecl channel-update pecl.php.net && \
|
||||||
|
groupadd -g ${PGID} laradock && \
|
||||||
|
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
||||||
|
usermod -p "*" laradock
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
# Mandatory Software's Installation
|
# Mandatory Software's Installation
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Mandatory Software's such as ("php7.1-cli", "git", "vim", ....) are
|
# Mandatory Software's such as ("php-cli", "git", "vim", ....) are
|
||||||
# installed on the base image 'laradock/workspace' image. If you want
|
# installed on the base image 'laradock/workspace' image. If you want
|
||||||
# to add more Software's or remove existing one, you need to edit the
|
# to add more Software's or remove existing one, you need to edit the
|
||||||
# base image (https://github.com/Laradock/workspace).
|
# base image (https://github.com/Laradock/workspace).
|
||||||
@ -42,106 +61,19 @@ RUN rm /var/log/lastlog /var/log/faillog
|
|||||||
# - ...
|
# - ...
|
||||||
#
|
#
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Non-Root User:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
|
||||||
ARG PUID=1000
|
|
||||||
ARG PGID=1000
|
|
||||||
|
|
||||||
ENV PUID ${PUID}
|
|
||||||
ENV PGID ${PGID}
|
|
||||||
|
|
||||||
RUN groupadd -g ${PGID} laradock && \
|
|
||||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
|
||||||
usermod -p "*" laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SOAP:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_SOAP=false
|
|
||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|
||||||
# Install the PHP SOAP extension
|
|
||||||
add-apt-repository -y ppa:ondrej/php && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install libxml2-dev php7.1-soap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# LDAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_LDAP=false
|
|
||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y libldap2-dev && \
|
|
||||||
apt-get install -y php7.1-ldap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# IMAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_IMAP=false
|
|
||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y php7.1-imap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Set Timezone
|
# Set Timezone
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG TZ=UTC
|
ARG TZ=UTC
|
||||||
ENV TZ ${TZ}
|
ENV TZ ${TZ}
|
||||||
|
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Composer:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add the composer.json
|
|
||||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
|
||||||
|
|
||||||
# Make sure that ~/.composer belongs to laradock
|
|
||||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
# Check if global install need to be ran
|
|
||||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
|
||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|
||||||
# run the install
|
|
||||||
composer global install \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Crontab
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./crontab /etc/cron.d
|
|
||||||
RUN chmod -R 644 /etc/cron.d
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# User Aliases
|
# User Aliases
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
COPY ./aliases.sh /root/aliases.sh
|
COPY ./aliases.sh /root/aliases.sh
|
||||||
@ -162,31 +94,158 @@ RUN echo "" >> ~/.bashrc && \
|
|||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
||||||
echo "" >> ~/.bashrc
|
echo "" >> ~/.bashrc
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
|
# Composer:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# Add the composer.json
|
||||||
|
COPY ./composer.json /home/laradock/.composer/composer.json
|
||||||
|
|
||||||
|
# Make sure that ~/.composer belongs to laradock
|
||||||
|
RUN chown -R laradock:laradock /home/laradock/.composer
|
||||||
|
|
||||||
|
USER laradock
|
||||||
|
|
||||||
|
# Check if global install need to be ran
|
||||||
|
ARG COMPOSER_GLOBAL_INSTALL=false
|
||||||
|
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||||
|
|
||||||
|
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||||
|
# run the install
|
||||||
|
composer global install \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
ARG COMPOSER_REPO_PACKAGIST
|
||||||
|
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
||||||
|
|
||||||
|
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
||||||
|
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
# Export composer vendor path
|
||||||
|
RUN echo "" >> ~/.bashrc && \
|
||||||
|
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Non-root user : PHPUnit path
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
||||||
|
USER laradock
|
||||||
|
|
||||||
|
RUN echo "" >> ~/.bashrc && \
|
||||||
|
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Crontab
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
COPY ./crontab /etc/cron.d
|
||||||
|
|
||||||
|
RUN chmod -R 644 /etc/cron.d
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Drush:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# Deprecated install of Drush 8 and earlier versions.
|
||||||
|
# Drush 9 and up require Drush to be listed as a composer dependency of your site.
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_DRUSH=false
|
||||||
|
ARG DRUSH_VERSION
|
||||||
|
ENV DRUSH_VERSION ${DRUSH_VERSION}
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||||
|
apt-get -y install mysql-client && \
|
||||||
|
# Install Drush 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
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# 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
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Subversion:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_SUBVERSION=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
|
||||||
|
apt-get install -y subversion \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
# xDebug:
|
# xDebug:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=false
|
ARG INSTALL_XDEBUG=false
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||||
# Load the xdebug extension only with phpunit commands
|
# Load the xdebug extension only with phpunit commands
|
||||||
apt-get update && \
|
apt-get install -y --force-yes php${PHP_VERSION}-xdebug && \
|
||||||
apt-get install -y --force-yes php7.1-xdebug && \
|
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||||
sed -i 's/^;//g' /etc/php/7.1/cli/conf.d/20-xdebug.ini && \
|
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
# ADD for REMOTE debugging
|
|
||||||
COPY ./xdebug.ini /etc/php/7.1/cli/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
#####################################
|
# ADD for REMOTE debugging
|
||||||
|
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
# Blackfire:
|
# Blackfire:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_BLACKFIRE=false
|
ARG INSTALL_BLACKFIRE=false
|
||||||
ARG BLACKFIRE_CLIENT_ID
|
ARG BLACKFIRE_CLIENT_ID
|
||||||
ARG BLACKFIRE_CLIENT_TOKEN
|
|
||||||
|
|
||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
||||||
|
ARG BLACKFIRE_CLIENT_TOKEN
|
||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||||
@ -196,11 +255,11 @@ RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
|||||||
apt-get install blackfire-agent \
|
apt-get install blackfire-agent \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# ssh:
|
# ssh:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_WORKSPACE_SSH=false
|
ARG INSTALL_WORKSPACE_SSH=false
|
||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
|
||||||
|
|
||||||
COPY insecure_id_rsa /tmp/id_rsa
|
COPY insecure_id_rsa /tmp/id_rsa
|
||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||||
@ -217,82 +276,79 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|||||||
&& chown -R laradock:laradock /home/laradock/.ssh \
|
&& chown -R laradock:laradock /home/laradock/.ssh \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# MongoDB:
|
# MongoDB:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
# Check if Mongo needs to be installed
|
|
||||||
ARG INSTALL_MONGO=false
|
ARG INSTALL_MONGO=false
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||||
# Install the mongodb extension
|
# Install the mongodb extension
|
||||||
pecl -q install mongodb && \
|
pecl -q install mongodb && \
|
||||||
echo "extension=mongodb.so" >> /etc/php/7.1/mods-available/mongodb.ini && \
|
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
||||||
ln -s /etc/php/7.1/mods-available/mongodb.ini /etc/php/7.1/cli/conf.d/30-mongodb.ini \
|
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# AMQP:
|
# AMQP:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_AMQP=false
|
ARG INSTALL_AMQP=false
|
||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||||
apt-get install librabbitmq-dev -y && \
|
apt-get install librabbitmq-dev -y && \
|
||||||
pecl -q install amqp && \
|
pecl -q install amqp && \
|
||||||
echo "extension=amqp.so" >> /etc/php/7.1/mods-available/amqp.ini && \
|
echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
|
||||||
ln -s /etc/php/7.1/mods-available/amqp.ini /etc/php/7.1/cli/conf.d/30-amqp.ini \
|
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# PHP REDIS EXTENSION FOR PHP 7.1
|
# PHP REDIS EXTENSION
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_PHPREDIS=false
|
ARG INSTALL_PHPREDIS=false
|
||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||||
# Install Php Redis extension
|
# Install Php Redis extension
|
||||||
printf "\n" | pecl -q install -o -f redis && \
|
printf "\n" | pecl -q install -o -f redis && \
|
||||||
echo "extension=redis.so" >> /etc/php/7.1/mods-available/redis.ini && \
|
echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
|
||||||
phpenmod redis \
|
phpenmod redis \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Swoole EXTENSION FOR PHP 7
|
# Swoole EXTENSION
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_SWOOLE=false
|
ARG INSTALL_SWOOLE=false
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||||
# Install Php Swoole Extension
|
# Install Php Swoole Extension
|
||||||
pecl -q install swoole && \
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
echo "extension=swoole.so" >> /etc/php/7.1/mods-available/swoole.ini && \
|
pecl -q install swoole-2.0.11; \
|
||||||
ln -s /etc/php/7.1/mods-available/swoole.ini /etc/php/7.1/cli/conf.d/20-swoole.ini \
|
else \
|
||||||
|
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||||
|
pecl install swoole-2.2.0; \
|
||||||
|
else \
|
||||||
|
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 \
|
||||||
;fi
|
;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:
|
# Drupal Console:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_DRUPAL_CONSOLE=false
|
ARG INSTALL_DRUPAL_CONSOLE=false
|
||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
|
|
||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
apt-get -y install mysql-client && \
|
||||||
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
||||||
mv drupal.phar /usr/local/bin/drupal && \
|
mv drupal.phar /usr/local/bin/drupal && \
|
||||||
@ -301,18 +357,18 @@ RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
|||||||
|
|
||||||
USER laradock
|
USER laradock
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Node / NVM:
|
# Node / NVM:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
# Check if NVM needs to be installed
|
||||||
ARG NODE_VERSION=stable
|
ARG NODE_VERSION=stable
|
||||||
ENV NODE_VERSION ${NODE_VERSION}
|
ENV NODE_VERSION ${NODE_VERSION}
|
||||||
ARG INSTALL_NODE=false
|
ARG INSTALL_NODE=false
|
||||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
|
||||||
ARG NPM_REGISTRY
|
ARG NPM_REGISTRY
|
||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
||||||
ENV NVM_DIR /home/laradock/.nvm
|
ENV NVM_DIR /home/laradock/.nvm
|
||||||
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||||
# Install nvm (A Node Version Manager)
|
# Install nvm (A Node Version Manager)
|
||||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
|
||||||
@ -350,14 +406,13 @@ RUN if [ ${NPM_REGISTRY} ]; then \
|
|||||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# YARN:
|
# YARN:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER laradock
|
USER laradock
|
||||||
|
|
||||||
ARG INSTALL_YARN=false
|
ARG INSTALL_YARN=false
|
||||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
|
||||||
ARG YARN_VERSION=latest
|
ARG YARN_VERSION=latest
|
||||||
ENV YARN_VERSION ${YARN_VERSION}
|
ENV YARN_VERSION ${YARN_VERSION}
|
||||||
|
|
||||||
@ -381,20 +436,21 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
|
|||||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# PHP Aerospike:
|
# PHP Aerospike:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_AEROSPIKE=false
|
ARG INSTALL_AEROSPIKE=false
|
||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
ARG AEROSPIKE_PHP_REPOSITORY
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||||
# Fix dependencies for PHPUnit within aerospike extension
|
# Fix dependencies for PHPUnit within aerospike extension
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install sudo wget && \
|
apt-get -y install sudo wget && \
|
||||||
# Install the php aerospike extension
|
# Install the php aerospike extension
|
||||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
|
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
||||||
&& mkdir -p aerospike-client-php \
|
&& mkdir -p aerospike-client-php \
|
||||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||||
&& ( \
|
&& ( \
|
||||||
@ -404,54 +460,46 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|||||||
&& make install \
|
&& make install \
|
||||||
) \
|
) \
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||||
&& echo 'extension=aerospike.so' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
|
&& echo 'extension=aerospike.so' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
|
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.1/cli/conf.d/aerospike.ini \
|
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# PHP V8JS:
|
# PHP V8JS:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_V8JS=false
|
ARG INSTALL_V8JS=false
|
||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
||||||
# Install the php V8JS extension
|
# Install the php V8JS extension
|
||||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
add-apt-repository -y ppa:pinepain/libv8-archived \
|
||||||
&& apt-get update -yqq \
|
&& apt-get update -yqq \
|
||||||
&& apt-get install -y php7.1-xml php7.1-dev php-pear libv8-5.4 \
|
&& apt-get install -y php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
|
||||||
&& pecl install v8js \
|
&& pecl install v8js \
|
||||||
&& echo "extension=v8js.so" >> /etc/php/7.1/cli/php.ini \
|
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Non-root user : PHPUnit path
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Envoy:
|
# Laravel Envoy:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER laradock
|
USER laradock
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_ENVOY=false
|
ARG INSTALL_LARAVEL_ENVOY=false
|
||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
||||||
# Install the Laravel Envoy
|
# Install the Laravel Envoy
|
||||||
composer global require "laravel/envoy=~1.0" \
|
composer global require "laravel/envoy=~1.0" \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Laravel Installer:
|
# Laravel Installer:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
ARG COMPOSER_REPO_PACKAGIST
|
||||||
@ -462,24 +510,19 @@ RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|||||||
;fi
|
;fi
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_INSTALLER=false
|
ARG INSTALL_LARAVEL_INSTALLER=false
|
||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
||||||
# Install the Laravel Installer
|
# Install the Laravel Installer
|
||||||
echo "" >> ~/.bashrc && \
|
composer global require "laravel/installer" \
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
&& composer global require "laravel/installer" \
|
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
USER laradock
|
###########################################################################
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Deployer:
|
# Deployer:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_DEPLOYER=false
|
ARG INSTALL_DEPLOYER=false
|
||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
||||||
# Install the Deployer
|
# Install the Deployer
|
||||||
@ -490,26 +533,25 @@ RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
|||||||
chmod +x /usr/local/bin/dep \
|
chmod +x /usr/local/bin/dep \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Prestissimo:
|
# Prestissimo:
|
||||||
#####################################
|
###########################################################################
|
||||||
USER laradock
|
USER laradock
|
||||||
|
|
||||||
ARG INSTALL_PRESTISSIMO=false
|
ARG INSTALL_PRESTISSIMO=false
|
||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
||||||
# Install Prestissimo
|
# Install Prestissimo
|
||||||
composer global require "hirak/prestissimo" \
|
composer global require "hirak/prestissimo" \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Linuxbrew:
|
# Linuxbrew:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_LINUXBREW=false
|
ARG INSTALL_LINUXBREW=false
|
||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
||||||
# Preparation
|
# Preparation
|
||||||
@ -531,63 +573,73 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|||||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# SQL SERVER:
|
# SQL SERVER:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_MSSQL=false
|
ARG INSTALL_MSSQL=false
|
||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||||
#####################################
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
# The following steps were taken from
|
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
|
||||||
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
&& php -m | grep -q 'mssql' \
|
||||||
#####################################
|
&& php -m | grep -q 'pdo_dblib' \
|
||||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
;else \
|
||||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
###########################################################################
|
||||||
apt-get update && \
|
# The following steps were taken from
|
||||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
||||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
###########################################################################
|
||||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
||||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||||
ACCEPT_EULA=Y apt-get install -yqq \
|
apt-get update -yqq && \
|
||||||
unixodbc \
|
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
||||||
unixodbc-dev \
|
apt-get install -yqq unixodbc-dev-utf16 && \
|
||||||
libgss3 \
|
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
||||||
odbcinst \
|
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
||||||
msodbcsql \
|
ACCEPT_EULA=Y apt-get install -yqq \
|
||||||
locales && \
|
unixodbc \
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
unixodbc-dev \
|
||||||
locale-gen && \
|
libgss3 \
|
||||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
odbcinst \
|
||||||
apt-get install -y locales && \
|
msodbcsql \
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
locales && \
|
||||||
locale-gen && \
|
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||||
echo "extension=sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-sqlsrv.ini && \
|
locale-gen && \
|
||||||
echo "extension=pdo_sqlsrv.so" > /etc/php/7.1/cli/conf.d/20-pdo_sqlsrv.ini \
|
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
||||||
&& php -m | grep -q 'sqlsrv' \
|
apt-get install -y locales && \
|
||||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
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 \
|
||||||
|
&& php -m | grep -q 'sqlsrv' \
|
||||||
|
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||||
|
;fi \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Minio:
|
# Minio:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
ARG INSTALL_MC=false
|
|
||||||
ENV INSTALL_MC ${INSTALL_MC}
|
|
||||||
|
|
||||||
COPY mc/config.json /root/.mc/config.json
|
COPY mc/config.json /root/.mc/config.json
|
||||||
|
|
||||||
|
ARG INSTALL_MC=false
|
||||||
|
|
||||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
RUN if [ ${INSTALL_MC} = true ]; then\
|
||||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
||||||
chmod +x /usr/local/bin/mc \
|
chmod +x /usr/local/bin/mc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Image optimizers:
|
# Image optimizers:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
|
|
||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
||||||
if [ ${INSTALL_NODE} = true ]; then \
|
if [ ${INSTALL_NODE} = true ]; then \
|
||||||
@ -597,12 +649,14 @@ RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
|||||||
|
|
||||||
USER laradock
|
USER laradock
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Symfony:
|
# Symfony:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_SYMFONY=false
|
ARG INSTALL_SYMFONY=false
|
||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
|
|
||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
||||||
mkdir -p /usr/local/bin \
|
mkdir -p /usr/local/bin \
|
||||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
||||||
@ -615,68 +669,70 @@ RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
|||||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# PYTHON:
|
# PYTHON:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_PYTHON=false
|
ARG INSTALL_PYTHON=false
|
||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
|
|
||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
||||||
apt-get update \
|
apt-get -y install python python-pip python-dev build-essential \
|
||||||
&& apt-get -y install python python-pip python-dev build-essential \
|
&& python -m pip install --upgrade pip \
|
||||||
&& pip install --upgrade pip \
|
&& python -m pip install --upgrade virtualenv \
|
||||||
&& pip install --upgrade virtualenv \
|
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# ImageMagick:
|
# ImageMagick:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_IMAGEMAGICK=false
|
ARG INSTALL_IMAGEMAGICK=false
|
||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
|
|
||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
||||||
apt-get update -yqq \
|
apt-get install -y --force-yes imagemagick php-imagick \
|
||||||
&& apt-get install -y --force-yes imagemagick php-imagick \
|
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Terraform:
|
# Terraform:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_TERRAFORM=false
|
ARG INSTALL_TERRAFORM=false
|
||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
|
|
||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
||||||
apt-get update -yqq \
|
apt-get -y install sudo wget unzip \
|
||||||
&& apt-get -y install sudo wget unzip \
|
|
||||||
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
||||||
&& unzip terraform_0.10.6_linux_amd64.zip \
|
&& unzip terraform_0.10.6_linux_amd64.zip \
|
||||||
&& mv terraform /usr/local/bin \
|
&& mv terraform /usr/local/bin \
|
||||||
&& rm terraform_0.10.6_linux_amd64.zip \
|
&& rm terraform_0.10.6_linux_amd64.zip \
|
||||||
;fi
|
;fi
|
||||||
#####################################
|
###########################################################################
|
||||||
# pgsql client
|
# pgsql client
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_PG_CLIENT=false
|
ARG INSTALL_PG_CLIENT=false
|
||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
|
|
||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||||
# Install the pgsql clint
|
# Install the pgsql client
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install postgresql-client \
|
apt-get -y install postgresql-client \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Dusk Dependencies:
|
# Dusk Dependencies:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG CHROME_DRIVER_VERSION=stable
|
ARG CHROME_DRIVER_VERSION=stable
|
||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
||||||
ARG INSTALL_DUSK_DEPS=false
|
ARG INSTALL_DUSK_DEPS=false
|
||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
|
|
||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
||||||
add-apt-repository ppa:ondrej/php \
|
apt-get -y install zip wget unzip xdg-utils \
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y install zip wget unzip xdg-utils \
|
|
||||||
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
||||||
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
||||||
xfonts-base xfonts-scalable x11-apps \
|
xfonts-base xfonts-scalable x11-apps \
|
||||||
@ -691,11 +747,13 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|||||||
&& rm chromedriver_linux64.zip \
|
&& rm chromedriver_linux64.zip \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
#####################################
|
###########################################################################
|
||||||
# Check PHP version:
|
# Check PHP version:
|
||||||
#####################################
|
###########################################################################
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP 7.1."
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
|
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
@ -703,10 +761,12 @@ RUN php -v | head -n 1 | grep -q "PHP 7.1."
|
|||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
|
||||||
# Clean up
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
|
# Clean up
|
||||||
RUN apt-get clean && \
|
RUN apt-get clean && \
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||||
|
rm /var/log/lastlog /var/log/faillog
|
||||||
|
|
||||||
# Set default work directory
|
# Set default work directory
|
||||||
WORKDIR /var/www
|
WORKDIR /var/www
|
@ -1,696 +0,0 @@
|
|||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Image Setup
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# To edit the 'workspace' base Image, visit its repository on Github
|
|
||||||
# https://github.com/Laradock/workspace
|
|
||||||
#
|
|
||||||
# To change its version, see the available Tags on the Docker Hub:
|
|
||||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
|
||||||
#
|
|
||||||
# Note: Base Image name format {image-tag}-{php-version}
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM laradock/workspace:2.0-56
|
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|
||||||
|
|
||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
|
|
||||||
RUN rm /var/log/lastlog /var/log/faillog
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Mandatory Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Mandatory Software's such as ("php5.6-cli", "git", "vim", ....) are
|
|
||||||
# installed on the base image 'laradock/workspace' image. If you want
|
|
||||||
# to add more Software's or remove existing one, you need to edit the
|
|
||||||
# base image (https://github.com/Laradock/workspace).
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Optional Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
|
||||||
# in the `docker-compose.yml` before the build.
|
|
||||||
# Example:
|
|
||||||
# - INSTALL_NODE=false
|
|
||||||
# - ...
|
|
||||||
#
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-Root User:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
|
||||||
ARG PUID=1000
|
|
||||||
ARG PGID=1000
|
|
||||||
|
|
||||||
ENV PUID ${PUID}
|
|
||||||
ENV PGID ${PGID}
|
|
||||||
|
|
||||||
RUN groupadd -g ${PGID} laradock && \
|
|
||||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
|
||||||
usermod -p "*" laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SOAP:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_SOAP=false
|
|
||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|
||||||
# Install the PHP SOAP extension
|
|
||||||
add-apt-repository -y ppa:ondrej/php && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install libxml2-dev php5.6-soap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# LDAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_LDAP=false
|
|
||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y libldap2-dev && \
|
|
||||||
apt-get install -y php5.6-ldap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# IMAP:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_IMAP=false
|
|
||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
|
||||||
# Install the PHP IMAP extension
|
|
||||||
add-apt-repository -y ppa:ondrej/php && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install php5.6-imap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Set Timezone
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG TZ=UTC
|
|
||||||
ENV TZ ${TZ}
|
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Composer:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add the composer.json
|
|
||||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
|
||||||
|
|
||||||
# Make sure that ~/.composer belongs to laradock
|
|
||||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
# Check if global install need to be ran
|
|
||||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
|
||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|
||||||
# run the install
|
|
||||||
composer global install \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Export composer vendor path
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Crontab
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./crontab /etc/cron.d
|
|
||||||
RUN chmod -R 644 /etc/cron.d
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# User Aliases
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./aliases.sh /root/aliases.sh
|
|
||||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
|
||||||
|
|
||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
|
|
||||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
|
||||||
chown laradock:laradock /home/laradock/aliases.sh && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# xDebug:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=false
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|
||||||
# Load the xdebug extension only with phpunit commands
|
|
||||||
apt-get install -y --force-yes php5.6-xdebug && \
|
|
||||||
sed -i 's/^;//g' /etc/php/5.6/cli/conf.d/20-xdebug.ini && \
|
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
# ADD for REMOTE debugging
|
|
||||||
COPY ./xdebug.ini /etc/php/5.6/cli/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Blackfire:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_BLACKFIRE=false
|
|
||||||
ARG BLACKFIRE_CLIENT_ID
|
|
||||||
ARG BLACKFIRE_CLIENT_TOKEN
|
|
||||||
|
|
||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
|
||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
|
||||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
|
||||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install blackfire-agent \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ssh:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_WORKSPACE_SSH=false
|
|
||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
|
||||||
|
|
||||||
COPY insecure_id_rsa /tmp/id_rsa
|
|
||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|
||||||
rm -f /etc/service/sshd/down && \
|
|
||||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
|
||||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
|
||||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
|
||||||
&& rm -f /tmp/id_rsa* \
|
|
||||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
|
||||||
&& chmod 400 /root/.ssh/id_rsa \
|
|
||||||
&& cp -rf /root/.ssh /home/laradock \
|
|
||||||
&& chown -R laradock:laradock /home/laradock/.ssh \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# MongoDB:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if Mongo needs to be installed
|
|
||||||
ARG INSTALL_MONGO=false
|
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|
||||||
# Install the mongodb extension
|
|
||||||
pecl channel-update pecl.php.net && \
|
|
||||||
pecl install mongodb && \
|
|
||||||
echo "extension=mongodb.so" >> /etc/php/5.6/mods-available/mongodb.ini && \
|
|
||||||
ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# AMQP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_AMQP=false
|
|
||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
|
|
||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|
||||||
apt-get install librabbitmq-dev -y && \
|
|
||||||
pecl -q install amqp && \
|
|
||||||
echo "extension=amqp.so" >> /etc/php/5.6/mods-available/amqp.ini && \
|
|
||||||
ln -s /etc/php/5.6/mods-available/amqp.ini /etc/php/5.6/cli/conf.d/30-amqp.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP REDIS EXTENSION FOR PHP 5.6
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PHPREDIS=false
|
|
||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
|
|
||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|
||||||
# Install Php Redis extension
|
|
||||||
printf "\n" | pecl -q install -o -f redis && \
|
|
||||||
echo "extension=redis.so" >> /etc/php/5.6/mods-available/redis.ini && \
|
|
||||||
phpenmod redis \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Swoole EXTENSION FOR PHP 5.6
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_SWOOLE=false
|
|
||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
|
||||||
# Install Php Swoole Extension
|
|
||||||
pecl -q install -f swoole-1.10.1 && \
|
|
||||||
echo "extension=swoole.so" >> /etc/php/5.6/mods-available/swoole.ini && \
|
|
||||||
ln -s /etc/php/5.6/mods-available/swoole.ini /etc/php/5.6/cli/conf.d/20-swoole.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drush:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ENV DRUSH_VERSION 8.1.2
|
|
||||||
ARG INSTALL_DRUSH=false
|
|
||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
|
||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
# Install Drush 8 with the phar file.
|
|
||||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
|
||||||
chmod +x /usr/local/bin/drush && \
|
|
||||||
drush core-status \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drupal Console:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_DRUPAL_CONSOLE=false
|
|
||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
|
|
||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
|
||||||
mv drupal.phar /usr/local/bin/drupal && \
|
|
||||||
chmod +x /usr/local/bin/drupal \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Node / NVM:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
|
||||||
ARG NODE_VERSION=stable
|
|
||||||
ENV NODE_VERSION ${NODE_VERSION}
|
|
||||||
ARG INSTALL_NODE=false
|
|
||||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
|
||||||
ARG NPM_REGISTRY
|
|
||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
|
||||||
ENV NVM_DIR /home/laradock/.nvm
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
# Install nvm (A Node Version Manager)
|
|
||||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
|
|
||||||
. $NVM_DIR/nvm.sh && \
|
|
||||||
nvm install ${NODE_VERSION} && \
|
|
||||||
nvm use ${NODE_VERSION} && \
|
|
||||||
nvm alias ${NODE_VERSION} && \
|
|
||||||
if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi && \
|
|
||||||
npm install -g gulp bower vue-cli \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Wouldn't execute when added to the RUN statement in the above block
|
|
||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add NVM binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add PATH for node
|
|
||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
|
|
||||||
|
|
||||||
RUN if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# YARN:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_YARN=false
|
|
||||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
|
||||||
ARG YARN_VERSION=latest
|
|
||||||
ENV YARN_VERSION ${YARN_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
|
||||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
|
||||||
else \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
|
||||||
fi && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add YARN binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP Aerospike:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_AEROSPIKE=false
|
|
||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|
||||||
# Fix dependencies for PHPUnit within aerospike extension
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install sudo wget && \
|
|
||||||
# Install the php aerospike extension
|
|
||||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz" \
|
|
||||||
&& mkdir -p aerospike-client-php \
|
|
||||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
|
||||||
&& ( \
|
|
||||||
cd aerospike-client-php/src/aerospike \
|
|
||||||
&& phpize \
|
|
||||||
&& ./build.sh \
|
|
||||||
&& make install \
|
|
||||||
) \
|
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
|
||||||
&& echo 'extension=aerospike.so' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/5.6/cli/conf.d/aerospike.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP V8JS:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_V8JS=false
|
|
||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
|
||||||
# Install the php V8JS extension
|
|
||||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
|
||||||
&& apt-get update -yqq \
|
|
||||||
&& apt-get install -y php5.6-xml php5.6-dev php-pear libv8-dev \
|
|
||||||
&& pecl install v8js-0.6.4 \
|
|
||||||
&& echo "extension=v8js.so" >> /etc/php/5.6/cli/php.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-root user : PHPUnit path
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Envoy:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_ENVOY=false
|
|
||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
|
||||||
# Install the Laravel Envoy
|
|
||||||
composer global require "laravel/envoy=~1.0" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Installer:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_INSTALLER=false
|
|
||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
|
||||||
# Install the Laravel Installer
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
&& composer global require "laravel/installer" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Deployer:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_DEPLOYER=false
|
|
||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
|
||||||
# Install the Deployer
|
|
||||||
composer global require "deployer/deployer" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Prestissimo:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_PRESTISSIMO=false
|
|
||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
|
||||||
# Install Prestissimo
|
|
||||||
composer global require "hirak/prestissimo" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Linuxbrew:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_LINUXBREW=true
|
|
||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|
||||||
# Preparation
|
|
||||||
apt-get upgrade -y && \
|
|
||||||
apt-get install -y build-essential make cmake scons curl git \
|
|
||||||
ruby autoconf automake autoconf-archive \
|
|
||||||
gettext libtool flex bison \
|
|
||||||
libbz2-dev libcurl4-openssl-dev \
|
|
||||||
libexpat-dev libncurses-dev && \
|
|
||||||
# Install the Linuxbrew
|
|
||||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
# Setup linuxbrew
|
|
||||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SQL SERVER:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_MSSQL=false
|
|
||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
|
||||||
|
|
||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|
||||||
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
|
|
||||||
&& echo "extension=mssql.so" > /etc/php/5.6/cli/conf.d/20-mssql.ini \
|
|
||||||
&& echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \
|
|
||||||
&& php -m | grep -q 'mssql' \
|
|
||||||
&& php -m | grep -q 'pdo_dblib' \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Minio:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_MC=false
|
|
||||||
ENV INSTALL_MC ${INSTALL_MC}
|
|
||||||
|
|
||||||
COPY mc/config.json /root/.mc/config.json
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
|
||||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
|
||||||
chmod +x /usr/local/bin/mc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Image optimizers:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
|
||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
|
|
||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
|
||||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
|
||||||
if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
. ~/.bashrc && npm install -g svgo \
|
|
||||||
;fi\
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Symfony:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_SYMFONY=false
|
|
||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
|
|
||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
|
||||||
mkdir -p /usr/local/bin \
|
|
||||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
|
||||||
&& chmod a+x /usr/local/bin/symfony \
|
|
||||||
# Symfony 3 alias
|
|
||||||
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
|
|
||||||
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
|
|
||||||
# Symfony 2 alias
|
|
||||||
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
|
|
||||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PYTHON:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PYTHON=false
|
|
||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
|
|
||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
|
||||||
apt-get update \
|
|
||||||
&& apt-get -y install python python-pip python-dev build-essential \
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& pip install --upgrade virtualenv \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ImageMagick:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGEMAGICK=false
|
|
||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
|
|
||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get install -y --force-yes imagemagick php-imagick \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Terraform:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_TERRAFORM=false
|
|
||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
|
|
||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get -y install sudo wget unzip \
|
|
||||||
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& unzip terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& mv terraform /usr/local/bin \
|
|
||||||
&& rm terraform_0.10.6_linux_amd64.zip \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# pgsql client
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_PG_CLIENT=false
|
|
||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
|
|
||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
|
||||||
# Install the pgsql clint
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install postgresql-client \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Dusk Dependencies:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG CHROME_DRIVER_VERSION=stable
|
|
||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
|
||||||
ARG INSTALL_DUSK_DEPS=false
|
|
||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
|
|
||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|
||||||
# Install required packages
|
|
||||||
add-apt-repository ppa:ondrej/php \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y install zip wget unzip xdg-utils \
|
|
||||||
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
|
||||||
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
|
||||||
xfonts-base xfonts-scalable x11-apps \
|
|
||||||
# Install Google Chrome
|
|
||||||
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& apt-get -y -f install \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& rm google-chrome-stable_current_amd64.deb \
|
|
||||||
# Install Chrome Driver
|
|
||||||
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
|
|
||||||
&& unzip chromedriver_linux64.zip \
|
|
||||||
&& mv chromedriver /usr/local/bin/ \
|
|
||||||
&& rm chromedriver_linux64.zip \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Check PHP version:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP 5.6."
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Final Touch
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
|
|
||||||
# Clean up
|
|
||||||
USER root
|
|
||||||
RUN apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
# Set default work directory
|
|
||||||
WORKDIR /var/www
|
|
@ -1,710 +0,0 @@
|
|||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Image Setup
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# To edit the 'workspace' base Image, visit its repository on Github
|
|
||||||
# https://github.com/Laradock/workspace
|
|
||||||
#
|
|
||||||
# To change its version, see the available Tags on the Docker Hub:
|
|
||||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
|
||||||
#
|
|
||||||
# Note: Base Image name format {image-tag}-{php-version}
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM laradock/workspace:2.0-70
|
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|
||||||
|
|
||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
|
|
||||||
RUN rm /var/log/lastlog /var/log/faillog
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Mandatory Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are
|
|
||||||
# installed on the base image 'laradock/workspace' image. If you want
|
|
||||||
# to add more Software's or remove existing one, you need to edit the
|
|
||||||
# base image (https://github.com/Laradock/workspace).
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Optional Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
|
||||||
# in the `docker-compose.yml` before the build.
|
|
||||||
# Example:
|
|
||||||
# - INSTALL_NODE=false
|
|
||||||
# - ...
|
|
||||||
#
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-Root User:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
|
||||||
ARG PUID=1000
|
|
||||||
ARG PGID=1000
|
|
||||||
|
|
||||||
ENV PUID ${PUID}
|
|
||||||
ENV PGID ${PGID}
|
|
||||||
|
|
||||||
RUN groupadd -g ${PGID} laradock && \
|
|
||||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
|
||||||
usermod -p "*" laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SOAP:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_SOAP=false
|
|
||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|
||||||
# Install the PHP SOAP extension
|
|
||||||
add-apt-repository -y ppa:ondrej/php && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install libxml2-dev php7.0-soap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# LDAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_LDAP=false
|
|
||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y libldap2-dev && \
|
|
||||||
apt-get install -y php7.0-ldap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# IMAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_IMAP=false
|
|
||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y php7.0-imap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Set Timezone
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG TZ=UTC
|
|
||||||
ENV TZ ${TZ}
|
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Composer:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add the composer.json
|
|
||||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
|
||||||
|
|
||||||
# Make sure that ~/.composer belongs to laradock
|
|
||||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
# Check if global install need to be ran
|
|
||||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
|
||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|
||||||
# run the install
|
|
||||||
composer global install \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Export composer vendor path
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Crontab
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./crontab /etc/cron.d
|
|
||||||
RUN chmod -R 644 /etc/cron.d
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# User Aliases
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./aliases.sh /root/aliases.sh
|
|
||||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
|
||||||
|
|
||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
|
|
||||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
|
||||||
chown laradock:laradock /home/laradock/aliases.sh && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# xDebug:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=false
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|
||||||
# Load the xdebug extension only with phpunit commands
|
|
||||||
apt-get install -y --force-yes php7.0-xdebug && \
|
|
||||||
sed -i 's/^;//g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
# ADD for REMOTE debugging
|
|
||||||
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Blackfire:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_BLACKFIRE=false
|
|
||||||
ARG BLACKFIRE_CLIENT_ID
|
|
||||||
ARG BLACKFIRE_CLIENT_TOKEN
|
|
||||||
|
|
||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
|
||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
|
||||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
|
||||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install blackfire-agent \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ssh:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_WORKSPACE_SSH=false
|
|
||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
|
||||||
|
|
||||||
COPY insecure_id_rsa /tmp/id_rsa
|
|
||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|
||||||
rm -f /etc/service/sshd/down && \
|
|
||||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
|
||||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
|
||||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
|
||||||
&& rm -f /tmp/id_rsa* \
|
|
||||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
|
||||||
&& chmod 400 /root/.ssh/id_rsa \
|
|
||||||
&& cp -rf /root/.ssh /home/laradock \
|
|
||||||
&& chown -R laradock:laradock /home/laradock/.ssh \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# MongoDB:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if Mongo needs to be installed
|
|
||||||
ARG INSTALL_MONGO=false
|
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|
||||||
# Install the mongodb extension
|
|
||||||
pecl install mongodb && \
|
|
||||||
echo "extension=mongodb.so" >> /etc/php/7.0/mods-available/mongodb.ini && \
|
|
||||||
ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# AMQP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_AMQP=false
|
|
||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
|
|
||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|
||||||
apt-get install librabbitmq-dev -y && \
|
|
||||||
pecl -q install amqp && \
|
|
||||||
echo "extension=amqp.so" >> /etc/php/7.0/mods-available/amqp.ini && \
|
|
||||||
ln -s /etc/php/7.0/mods-available/amqp.ini /etc/php/7.0/cli/conf.d/30-amqp.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP REDIS EXTENSION FOR PHP 7
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PHPREDIS=false
|
|
||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
|
|
||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|
||||||
# Install Php Redis extension
|
|
||||||
printf "\n" | pecl -q install -o -f redis && \
|
|
||||||
echo "extension=redis.so" >> /etc/php/7.0/mods-available/redis.ini && \
|
|
||||||
phpenmod redis \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Swoole EXTENSION FOR PHP 7
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_SWOOLE=false
|
|
||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
|
||||||
# Install Php Swoole Extension
|
|
||||||
pecl -q install swoole && \
|
|
||||||
echo "extension=swoole.so" >> /etc/php/7.0/mods-available/swoole.ini && \
|
|
||||||
ln -s /etc/php/7.0/mods-available/swoole.ini /etc/php/7.0/cli/conf.d/20-swoole.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drush:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ENV DRUSH_VERSION 8.1.2
|
|
||||||
ARG INSTALL_DRUSH=false
|
|
||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
|
||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
# Install Drush 8 with the phar file.
|
|
||||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
|
||||||
chmod +x /usr/local/bin/drush && \
|
|
||||||
drush core-status \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drupal Console:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_DRUPAL_CONSOLE=false
|
|
||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
|
|
||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
|
||||||
mv drupal.phar /usr/local/bin/drupal && \
|
|
||||||
chmod +x /usr/local/bin/drupal \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Node / NVM:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
|
||||||
ARG NODE_VERSION=stable
|
|
||||||
ENV NODE_VERSION ${NODE_VERSION}
|
|
||||||
ARG INSTALL_NODE=false
|
|
||||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
|
||||||
ARG NPM_REGISTRY
|
|
||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
|
||||||
ENV NVM_DIR /home/laradock/.nvm
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
# Install nvm (A Node Version Manager)
|
|
||||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash && \
|
|
||||||
. $NVM_DIR/nvm.sh && \
|
|
||||||
nvm install ${NODE_VERSION} && \
|
|
||||||
nvm use ${NODE_VERSION} && \
|
|
||||||
nvm alias ${NODE_VERSION} && \
|
|
||||||
if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi && \
|
|
||||||
npm install -g gulp bower vue-cli \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Wouldn't execute when added to the RUN statement in the above block
|
|
||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add NVM binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add PATH for node
|
|
||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
|
|
||||||
|
|
||||||
RUN if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# YARN:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_YARN=false
|
|
||||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
|
||||||
ARG YARN_VERSION=latest
|
|
||||||
ENV YARN_VERSION ${YARN_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
|
||||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
|
||||||
else \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
|
||||||
fi && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add YARN binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP Aerospike:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_AEROSPIKE=false
|
|
||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|
||||||
# Fix dependencies for PHPUnit within aerospike extension
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install sudo wget && \
|
|
||||||
# Install the php aerospike extension
|
|
||||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz" \
|
|
||||||
&& mkdir -p aerospike-client-php \
|
|
||||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
|
||||||
&& ( \
|
|
||||||
cd aerospike-client-php/src \
|
|
||||||
&& phpize \
|
|
||||||
&& ./build.sh \
|
|
||||||
&& make install \
|
|
||||||
) \
|
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
|
||||||
&& echo 'extension=aerospike.so' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.0/cli/conf.d/aerospike.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP V8JS:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_V8JS=false
|
|
||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
|
||||||
# Install the php V8JS extension
|
|
||||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
|
||||||
&& apt-get update -yqq \
|
|
||||||
&& apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \
|
|
||||||
&& pecl install v8js \
|
|
||||||
&& echo "extension=v8js.so" >> /etc/php/7.0/cli/php.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-root user : PHPUnit path
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Envoy:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_ENVOY=false
|
|
||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
|
||||||
# Install the Laravel Envoy
|
|
||||||
composer global require "laravel/envoy=~1.0" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Installer:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_INSTALLER=false
|
|
||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
|
||||||
# Install the Laravel Installer
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
&& composer global require "laravel/installer" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Deployer:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_DEPLOYER=false
|
|
||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
|
||||||
# Install the Deployer
|
|
||||||
composer global require "deployer/deployer" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Prestissimo:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_PRESTISSIMO=false
|
|
||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
|
||||||
# Install Prestissimo
|
|
||||||
composer global require "hirak/prestissimo" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Linuxbrew:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_LINUXBREW=true
|
|
||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|
||||||
# Preparation
|
|
||||||
apt-get upgrade -y && \
|
|
||||||
apt-get install -y build-essential make cmake scons curl git \
|
|
||||||
ruby autoconf automake autoconf-archive \
|
|
||||||
gettext libtool flex bison \
|
|
||||||
libbz2-dev libcurl4-openssl-dev \
|
|
||||||
libexpat-dev libncurses-dev && \
|
|
||||||
# Install the Linuxbrew
|
|
||||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
# Setup linuxbrew
|
|
||||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SQL SERVER:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_MSSQL=true
|
|
||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
|
||||||
|
|
||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|
||||||
#####################################
|
|
||||||
# The following steps were taken from
|
|
||||||
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
|
||||||
#####################################
|
|
||||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
|
||||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
|
||||||
apt-get update && \
|
|
||||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
|
||||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
|
||||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
|
||||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
|
||||||
ACCEPT_EULA=Y apt-get install -yqq \
|
|
||||||
unixodbc \
|
|
||||||
unixodbc-dev \
|
|
||||||
libgss3 \
|
|
||||||
odbcinst \
|
|
||||||
msodbcsql \
|
|
||||||
locales && \
|
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
|
||||||
locale-gen && \
|
|
||||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
|
||||||
apt-get install -y locales && \
|
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
|
||||||
locale-gen && \
|
|
||||||
echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini && \
|
|
||||||
echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
|
|
||||||
&& php -m | grep -q 'sqlsrv' \
|
|
||||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Minio:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_MC=false
|
|
||||||
ENV INSTALL_MC ${INSTALL_MC}
|
|
||||||
|
|
||||||
COPY mc/config.json /root/.mc/config.json
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
|
||||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
|
||||||
chmod +x /usr/local/bin/mc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Image optimizers:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
|
||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
|
|
||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
|
||||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
|
||||||
if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
. ~/.bashrc && npm install -g svgo \
|
|
||||||
;fi\
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Symfony:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_SYMFONY=false
|
|
||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
|
|
||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
|
||||||
mkdir -p /usr/local/bin \
|
|
||||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
|
||||||
&& chmod a+x /usr/local/bin/symfony \
|
|
||||||
# Symfony 3 alias
|
|
||||||
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
|
|
||||||
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
|
|
||||||
# Symfony 2 alias
|
|
||||||
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
|
|
||||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PYTHON:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PYTHON=false
|
|
||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
|
|
||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
|
||||||
apt-get update \
|
|
||||||
&& apt-get -y install python python-pip python-dev build-essential \
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& pip install --upgrade virtualenv \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ImageMagick:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGEMAGICK=false
|
|
||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
|
|
||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get install -y --force-yes imagemagick php-imagick \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Terraform:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_TERRAFORM=false
|
|
||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
|
|
||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get -y install sudo wget unzip \
|
|
||||||
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& unzip terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& mv terraform /usr/local/bin \
|
|
||||||
&& rm terraform_0.10.6_linux_amd64.zip \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# pgsql client
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_PG_CLIENT=false
|
|
||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
|
|
||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
|
||||||
# Install the pgsql client
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install postgresql-client \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Dusk Dependencies:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG CHROME_DRIVER_VERSION=stable
|
|
||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
|
||||||
ARG INSTALL_DUSK_DEPS=false
|
|
||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
|
|
||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|
||||||
add-apt-repository ppa:ondrej/php \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y install zip wget unzip xdg-utils \
|
|
||||||
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
|
||||||
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
|
||||||
xfonts-base xfonts-scalable x11-apps \
|
|
||||||
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& apt-get -y -f install \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& rm google-chrome-stable_current_amd64.deb \
|
|
||||||
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
|
|
||||||
&& unzip chromedriver_linux64.zip \
|
|
||||||
&& mv chromedriver /usr/local/bin/ \
|
|
||||||
&& rm chromedriver_linux64.zip \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Check PHP version:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP 7.0."
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Final Touch
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
|
|
||||||
# Clean up
|
|
||||||
USER root
|
|
||||||
RUN apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
# Set default work directory
|
|
||||||
WORKDIR /var/www
|
|
@ -1,712 +0,0 @@
|
|||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Image Setup
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# To edit the 'workspace' base Image, visit its repository on Github
|
|
||||||
# https://github.com/Laradock/workspace
|
|
||||||
#
|
|
||||||
# To change its version, see the available Tags on the Docker Hub:
|
|
||||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
|
||||||
#
|
|
||||||
# Note: Base Image name format {image-tag}-{php-version}
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM laradock/workspace:2.0-72
|
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|
||||||
|
|
||||||
# Remove Faillog and Lastlog to reduce the size of the final image.
|
|
||||||
RUN rm /var/log/lastlog /var/log/faillog
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Mandatory Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Mandatory Software's such as ("php7.2-cli", "git", "vim", ....) are
|
|
||||||
# installed on the base image 'laradock/workspace' image. If you want
|
|
||||||
# to add more Software's or remove existing one, you need to edit the
|
|
||||||
# base image (https://github.com/Laradock/workspace).
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Optional Software's Installation
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Optional Software's will only be installed if you set them to `true`
|
|
||||||
# in the `docker-compose.yml` before the build.
|
|
||||||
# Example:
|
|
||||||
# - INSTALL_NODE=false
|
|
||||||
# - ...
|
|
||||||
#
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-Root User:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
|
||||||
ARG PUID=1000
|
|
||||||
ARG PGID=1000
|
|
||||||
|
|
||||||
ENV PUID ${PUID}
|
|
||||||
ENV PGID ${PGID}
|
|
||||||
|
|
||||||
RUN groupadd -g ${PGID} laradock && \
|
|
||||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
|
||||||
usermod -p "*" laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SOAP:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_SOAP=false
|
|
||||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|
||||||
# Install the PHP SOAP extension
|
|
||||||
add-apt-repository -y ppa:ondrej/php && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install libxml2-dev php7.2-soap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# LDAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_LDAP=false
|
|
||||||
ENV INSTALL_LDAP ${INSTALL_LDAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y libldap2-dev && \
|
|
||||||
apt-get install -y php7.2-ldap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# IMAP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_IMAP=false
|
|
||||||
ENV INSTALL_IMAP ${INSTALL_IMAP}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install -y php7.2-imap \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Set Timezone
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG TZ=UTC
|
|
||||||
ENV TZ ${TZ}
|
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Composer:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Add the composer.json
|
|
||||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
|
||||||
|
|
||||||
# Make sure that ~/.composer belongs to laradock
|
|
||||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
# Check if global install need to be ran
|
|
||||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
|
||||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
|
||||||
# run the install
|
|
||||||
composer global install \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Crontab
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./crontab /etc/cron.d
|
|
||||||
RUN chmod -R 644 /etc/cron.d
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# User Aliases
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
COPY ./aliases.sh /root/aliases.sh
|
|
||||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
|
||||||
|
|
||||||
RUN sed -i 's/\r//' /root/aliases.sh && \
|
|
||||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
|
||||||
chown laradock:laradock /home/laradock/aliases.sh && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
|
||||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
|
||||||
echo "" >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# xDebug:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_XDEBUG=false
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
|
||||||
# Load the xdebug extension only with phpunit commands
|
|
||||||
apt-get update && \
|
|
||||||
apt-get install -y --force-yes php7.2-xdebug && \
|
|
||||||
sed -i 's/^;//g' /etc/php/7.2/cli/conf.d/20-xdebug.ini && \
|
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
# ADD for REMOTE debugging
|
|
||||||
COPY ./xdebug.ini /etc/php/7.2/cli/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Blackfire:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_BLACKFIRE=false
|
|
||||||
ARG BLACKFIRE_CLIENT_ID
|
|
||||||
ARG BLACKFIRE_CLIENT_TOKEN
|
|
||||||
|
|
||||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
|
||||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
|
||||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
|
||||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get install blackfire-agent \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ssh:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_WORKSPACE_SSH=false
|
|
||||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
|
||||||
|
|
||||||
COPY insecure_id_rsa /tmp/id_rsa
|
|
||||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|
||||||
rm -f /etc/service/sshd/down && \
|
|
||||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
|
||||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
|
||||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
|
||||||
&& rm -f /tmp/id_rsa* \
|
|
||||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
|
||||||
&& chmod 400 /root/.ssh/id_rsa \
|
|
||||||
&& cp -rf /root/.ssh /home/laradock \
|
|
||||||
&& chown -R laradock:laradock /home/laradock/.ssh \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# MongoDB:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if Mongo needs to be installed
|
|
||||||
ARG INSTALL_MONGO=false
|
|
||||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
|
||||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|
||||||
# Install the mongodb extension
|
|
||||||
pecl -q install mongodb && \
|
|
||||||
echo "extension=mongodb.so" >> /etc/php/7.2/mods-available/mongodb.ini && \
|
|
||||||
ln -s /etc/php/7.2/mods-available/mongodb.ini /etc/php/7.2/cli/conf.d/30-mongodb.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# AMQP:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_AMQP=false
|
|
||||||
ENV INSTALL_AMQP ${INSTALL_AMQP}
|
|
||||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|
||||||
apt-get install librabbitmq-dev -y && \
|
|
||||||
pecl -q install amqp && \
|
|
||||||
echo "extension=amqp.so" >> /etc/php/7.2/mods-available/amqp.ini && \
|
|
||||||
ln -s /etc/php/7.2/mods-available/amqp.ini /etc/php/7.2/cli/conf.d/30-amqp.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP REDIS EXTENSION FOR PHP 7.2
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PHPREDIS=false
|
|
||||||
ENV INSTALL_PHPREDIS ${INSTALL_PHPREDIS}
|
|
||||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|
||||||
# Install Php Redis extension
|
|
||||||
printf "\n" | pecl -q install -o -f redis && \
|
|
||||||
echo "extension=redis.so" >> /etc/php/7.2/mods-available/redis.ini && \
|
|
||||||
phpenmod redis \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Swoole EXTENSION FOR PHP 7
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_SWOOLE=false
|
|
||||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
|
||||||
# Install Php Swoole Extension
|
|
||||||
pecl -q install swoole && \
|
|
||||||
echo "extension=swoole.so" >> /etc/php/7.2/mods-available/swoole.ini && \
|
|
||||||
ln -s /etc/php/7.2/mods-available/swoole.ini /etc/php/7.2/cli/conf.d/20-swoole.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drush:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ENV DRUSH_VERSION 8.1.2
|
|
||||||
ARG INSTALL_DRUSH=false
|
|
||||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
|
||||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
# Install Drush 8 with the phar file.
|
|
||||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
|
||||||
chmod +x /usr/local/bin/drush && \
|
|
||||||
drush core-status \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Drupal Console:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_DRUPAL_CONSOLE=false
|
|
||||||
ENV INSTALL_DRUPAL_CONSOLE ${INSTALL_DRUPAL_CONSOLE}
|
|
||||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install mysql-client && \
|
|
||||||
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
|
||||||
mv drupal.phar /usr/local/bin/drupal && \
|
|
||||||
chmod +x /usr/local/bin/drupal \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Node / NVM:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
|
||||||
ARG NODE_VERSION=stable
|
|
||||||
ENV NODE_VERSION ${NODE_VERSION}
|
|
||||||
ARG INSTALL_NODE=false
|
|
||||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
|
||||||
ENV NVM_DIR /home/laradock/.nvm
|
|
||||||
ARG NPM_REGISTRY
|
|
||||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
# Install nvm (A Node Version Manager)
|
|
||||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
|
|
||||||
. $NVM_DIR/nvm.sh && \
|
|
||||||
nvm install ${NODE_VERSION} && \
|
|
||||||
nvm use ${NODE_VERSION} && \
|
|
||||||
nvm alias ${NODE_VERSION} && \
|
|
||||||
if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi && \
|
|
||||||
npm install -g gulp bower vue-cli \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Wouldn't execute when added to the RUN statement in the above block
|
|
||||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add NVM binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
|
||||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add PATH for node
|
|
||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
|
|
||||||
|
|
||||||
RUN if [ ${NPM_REGISTRY} ]; then \
|
|
||||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# YARN:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_YARN=false
|
|
||||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
|
||||||
ARG YARN_VERSION=latest
|
|
||||||
ENV YARN_VERSION ${YARN_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
|
||||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
|
||||||
else \
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
|
||||||
fi && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
# Add YARN binaries to root's .bashrc
|
|
||||||
USER root
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP Aerospike:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_AEROSPIKE=false
|
|
||||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|
||||||
# Fix dependencies for PHPUnit within aerospike extension
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install sudo wget && \
|
|
||||||
# Install the php aerospike extension (using 7.2.0-in-progress branch until support for 7.2 on master)
|
|
||||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz" \
|
|
||||||
&& mkdir -p aerospike-client-php \
|
|
||||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
|
||||||
&& ( \
|
|
||||||
cd aerospike-client-php/src \
|
|
||||||
&& phpize \
|
|
||||||
&& ./build.sh \
|
|
||||||
&& make install \
|
|
||||||
) \
|
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
|
||||||
&& echo 'extension=aerospike.so' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
|
|
||||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/7.2/cli/conf.d/aerospike.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PHP V8JS:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_V8JS=false
|
|
||||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
|
||||||
# Install the php V8JS extension
|
|
||||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
|
||||||
&& apt-get update -yqq \
|
|
||||||
&& apt-get install -y php-xml php-dev php-pear libv8-5.4 \
|
|
||||||
&& pecl install v8js \
|
|
||||||
&& echo "extension=v8js.so" >> /etc/php/7.2/cli/php.ini \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Non-root user : PHPUnit path
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
RUN echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Envoy:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_ENVOY=false
|
|
||||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
|
||||||
# Install the Laravel Envoy
|
|
||||||
composer global require "laravel/envoy=~1.0" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Laravel Installer:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG COMPOSER_REPO_PACKAGIST
|
|
||||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
|
||||||
|
|
||||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
|
||||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
ARG INSTALL_LARAVEL_INSTALLER=false
|
|
||||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
|
||||||
# Install the Laravel Installer
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
|
||||||
&& composer global require "laravel/installer" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Deployer:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_DEPLOYER=false
|
|
||||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
|
||||||
# Install the Deployer
|
|
||||||
# Using Phar as currently there is no support for laravel 4 from composer version
|
|
||||||
# Waiting to be resolved on https://github.com/deployphp/deployer/issues/1552
|
|
||||||
curl -LO https://deployer.org/deployer.phar && \
|
|
||||||
mv deployer.phar /usr/local/bin/dep && \
|
|
||||||
chmod +x /usr/local/bin/dep \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Prestissimo:
|
|
||||||
#####################################
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
ARG INSTALL_PRESTISSIMO=false
|
|
||||||
ENV INSTALL_PRESTISSIMO ${INSTALL_PRESTISSIMO}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
|
||||||
# Install Prestissimo
|
|
||||||
composer global require "hirak/prestissimo" \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Linuxbrew:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
|
|
||||||
ARG INSTALL_LINUXBREW=false
|
|
||||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|
||||||
# Preparation
|
|
||||||
apt-get upgrade -y && \
|
|
||||||
apt-get install -y build-essential make cmake scons curl git \
|
|
||||||
ruby autoconf automake autoconf-archive \
|
|
||||||
gettext libtool flex bison \
|
|
||||||
libbz2-dev libcurl4-openssl-dev \
|
|
||||||
libexpat-dev libncurses-dev && \
|
|
||||||
# Install the Linuxbrew
|
|
||||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
|
||||||
echo "" >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
# Setup linuxbrew
|
|
||||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
|
||||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
|
||||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# SQL SERVER:
|
|
||||||
#####################################
|
|
||||||
ARG INSTALL_MSSQL=false
|
|
||||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
|
||||||
|
|
||||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|
||||||
#####################################
|
|
||||||
# The following steps were taken from
|
|
||||||
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
|
||||||
#####################################
|
|
||||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
|
||||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
|
||||||
apt-get update && \
|
|
||||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
|
||||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
|
||||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
|
||||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
|
||||||
ACCEPT_EULA=Y apt-get install -yqq \
|
|
||||||
unixodbc \
|
|
||||||
unixodbc-dev \
|
|
||||||
libgss3 \
|
|
||||||
odbcinst \
|
|
||||||
msodbcsql \
|
|
||||||
locales && \
|
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
|
||||||
locale-gen && \
|
|
||||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
|
||||||
apt-get install -y locales && \
|
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
|
||||||
locale-gen && \
|
|
||||||
echo "extension=sqlsrv.so" > /etc/php/7.2/cli/conf.d/20-sqlsrv.ini && \
|
|
||||||
echo "extension=pdo_sqlsrv.so" > /etc/php/7.2/cli/conf.d/20-pdo_sqlsrv.ini \
|
|
||||||
&& php -m | grep -q 'sqlsrv' \
|
|
||||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Minio:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_MC=false
|
|
||||||
ENV INSTALL_MC ${INSTALL_MC}
|
|
||||||
|
|
||||||
COPY mc/config.json /root/.mc/config.json
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
|
||||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
|
||||||
chmod +x /usr/local/bin/mc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Image optimizers:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
|
||||||
ENV INSTALL_IMAGE_OPTIMIZERS ${INSTALL_IMAGE_OPTIMIZERS}
|
|
||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
|
||||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
|
||||||
if [ ${INSTALL_NODE} = true ]; then \
|
|
||||||
. ~/.bashrc && npm install -g svgo \
|
|
||||||
;fi\
|
|
||||||
;fi
|
|
||||||
|
|
||||||
USER laradock
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Symfony:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_SYMFONY=false
|
|
||||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
|
|
||||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
|
||||||
mkdir -p /usr/local/bin \
|
|
||||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
|
||||||
&& chmod a+x /usr/local/bin/symfony \
|
|
||||||
# Symfony 3 alias
|
|
||||||
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
|
|
||||||
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
|
|
||||||
# Symfony 2 alias
|
|
||||||
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
|
|
||||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# PYTHON:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
ARG INSTALL_PYTHON=false
|
|
||||||
ENV INSTALL_PYTHON ${INSTALL_PYTHON}
|
|
||||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
|
||||||
apt-get update \
|
|
||||||
&& apt-get -y install python python-pip python-dev build-essential \
|
|
||||||
&& pip install --upgrade pip \
|
|
||||||
&& pip install --upgrade virtualenv \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# ImageMagick:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_IMAGEMAGICK=false
|
|
||||||
ENV INSTALL_IMAGEMAGICK ${INSTALL_IMAGEMAGICK}
|
|
||||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get install -y --force-yes imagemagick php-imagick \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Terraform:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_TERRAFORM=false
|
|
||||||
ENV INSTALL_TERRAFORM ${INSTALL_TERRAFORM}
|
|
||||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
|
||||||
apt-get update -yqq \
|
|
||||||
&& apt-get -y install sudo wget unzip \
|
|
||||||
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& unzip terraform_0.10.6_linux_amd64.zip \
|
|
||||||
&& mv terraform /usr/local/bin \
|
|
||||||
&& rm terraform_0.10.6_linux_amd64.zip \
|
|
||||||
;fi
|
|
||||||
#####################################
|
|
||||||
# pgsql client
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG INSTALL_PG_CLIENT=false
|
|
||||||
ENV INSTALL_PG_CLIENT ${INSTALL_PG_CLIENT}
|
|
||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
|
||||||
# Install the pgsql clint
|
|
||||||
apt-get update -yqq && \
|
|
||||||
apt-get -y install postgresql-client \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Dusk Dependencies:
|
|
||||||
#####################################
|
|
||||||
USER root
|
|
||||||
ARG CHROME_DRIVER_VERSION=stable
|
|
||||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
|
||||||
ARG INSTALL_DUSK_DEPS=false
|
|
||||||
ENV INSTALL_DUSK_DEPS ${INSTALL_DUSK_DEPS}
|
|
||||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|
||||||
add-apt-repository ppa:ondrej/php \
|
|
||||||
&& apt-get update \
|
|
||||||
&& apt-get -y install zip wget unzip xdg-utils \
|
|
||||||
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
|
||||||
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
|
||||||
xfonts-base xfonts-scalable x11-apps \
|
|
||||||
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& apt-get -y -f install \
|
|
||||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
|
||||||
&& rm google-chrome-stable_current_amd64.deb \
|
|
||||||
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
|
|
||||||
&& unzip chromedriver_linux64.zip \
|
|
||||||
&& mv chromedriver /usr/local/bin/ \
|
|
||||||
&& rm chromedriver_linux64.zip \
|
|
||||||
;fi
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Check PHP version:
|
|
||||||
#####################################
|
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP 7.2."
|
|
||||||
|
|
||||||
#
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
# Final Touch
|
|
||||||
#--------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
|
|
||||||
# Clean up
|
|
||||||
USER root
|
|
||||||
RUN apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
# Set default work directory
|
|
||||||
WORKDIR /var/www
|
|
Reference in New Issue
Block a user