Compare commits
104 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ec23122e7 | ||
|
|
a1e01ac19b | ||
|
|
eccc149f45 | ||
|
|
9cb7624da7 | ||
|
|
cd1c56c1e2 | ||
|
|
9d42ea6b9d | ||
|
|
b0bfa5f1d3 | ||
|
|
dcf6b6d9ac | ||
|
|
1d9cbd7c75 | ||
|
|
fd56c4dcda | ||
|
|
0351cf531b | ||
|
|
09e998b723 | ||
|
|
06d0105514 | ||
|
|
0cbc51bf72 | ||
|
|
08dfc9f816 | ||
|
|
b71f50bf83 | ||
|
|
7d1dc66f77 | ||
|
|
f3c934222f | ||
|
|
a90865d67c | ||
|
|
a0a5c85a54 | ||
|
|
a807caa30a | ||
|
|
bc27e96337 | ||
|
|
11912055ec | ||
|
|
3509473b89 | ||
|
|
5521f71428 | ||
|
|
339d47f303 | ||
|
|
600a6154b4 | ||
|
|
4673ba7b31 | ||
|
|
154249a08f | ||
|
|
5bffd43b55 | ||
|
|
0e9d044c6f | ||
|
|
21d203da73 | ||
|
|
a3cbfd71f5 | ||
|
|
33234fd3b5 | ||
|
|
f47e40b262 | ||
|
|
7199ae5a34 | ||
|
|
6caa4c5fb9 | ||
|
|
3fceba0709 | ||
|
|
75b3fa499e | ||
|
|
999118b674 | ||
|
|
4b2c440146 | ||
|
|
a4d3f9bd77 | ||
|
|
65444d39b6 | ||
|
|
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 | ||
|
|
ad1509dd62 | ||
|
|
9ab84c5174 | ||
|
|
6b6e2d5f86 | ||
|
|
3ad17eca0a | ||
|
|
f54e6baf02 | ||
|
|
59f3b574da | ||
|
|
545d50105c | ||
|
|
2a74f1433c |
@@ -73,7 +73,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
||||
|
||||
* Add the environment variables to the `env-example` if you have any.
|
||||
|
||||
* **MOST IMPORTANTLY** updated the `Documentation`, add as much information.
|
||||
* **MOST IMPORTANTLY** update the `Documentation`, add as much information.
|
||||
|
||||
* Submit a Pull Request, to the `master` branch.
|
||||
|
||||
@@ -100,7 +100,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
||||
|
||||
* Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source..
|
||||
|
||||
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other orgnizations.*
|
||||
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other organizations.*
|
||||
|
||||
**Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine.
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ weight: 3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="List-current-running-Containers"></a>
|
||||
## List current running Containers
|
||||
```bash
|
||||
@@ -134,6 +136,7 @@ More info on Containers rebuilding [here](#Build-Re-build-Containers).
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Build-Re-build-Containers"></a>
|
||||
## Build/Re-build Containers
|
||||
@@ -155,6 +158,7 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Add-Docker-Images"></a>
|
||||
## Add more Software (Docker Images)
|
||||
@@ -188,8 +192,6 @@ More [options](https://docs.docker.com/compose/reference/logs/)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="PHP"></a>
|
||||
|
||||
@@ -201,7 +203,7 @@ More [options](https://docs.docker.com/compose/reference/logs/)
|
||||
<a name="Install-PHP-Extensions"></a>
|
||||
## Install PHP Extensions
|
||||
|
||||
Before installing PHP extensions, you have to decide whether you need for the `FPM` or `CLI` because each lives on a different container, if you need it for both you have to edit both containers.
|
||||
Before installing PHP extensions, you have to decide first whether you need `FPM` or `CLI`, because each of them has it's own different container, if you need it for both, you have to edit both containers.
|
||||
|
||||
The PHP-FPM extensions should be installed in `php-fpm/Dockerfile-XX`. *(replace XX with your default PHP version number)*.
|
||||
<br>
|
||||
@@ -243,6 +245,8 @@ docker-compose build php-fpm
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Change-the-PHP-CLI-Version"></a>
|
||||
## Change the PHP-CLI Version
|
||||
@@ -271,51 +275,50 @@ docker-compose build workspace
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-xDebug"></a>
|
||||
## Install xDebug
|
||||
|
||||
1 - First install `xDebug` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_XDEBUG` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_XDEBUG` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_XDEBUG` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_XDEBUG` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
```
|
||||
|
||||
2 - Open `laradock/workspace/xdebug.ini` and `laradock/php-fpm/xdebug.ini` and enable at least the following configurations:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
```
|
||||
|
||||
3 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
For information on how to configure xDebug with your IDE and work it out, check this [Repository](https://github.com/LarryEitel/laravel-laradock-phpstorm) or follow up on the next section if you use linux and PhpStorm.
|
||||
|
||||
<br>
|
||||
<a name="Install-phpdbg"></a>
|
||||
## Install phpdbg
|
||||
|
||||
Install `phpdbg` in the Workspace and the PHP-FPM Containers:
|
||||
|
||||
<br>
|
||||
1 - Open the `.env`.
|
||||
|
||||
2 - Search for `WORKSPACE_INSTALL_PHPDBG`.
|
||||
|
||||
3 - Set value to `true`
|
||||
|
||||
4 - Do the same for `PHP_FPM_INSTALL_PHPDBG`
|
||||
|
||||
```dotenv
|
||||
WORKSPACE_INSTALL_PHPDBG=true
|
||||
```
|
||||
```dotenv
|
||||
PHP_FPM_INSTALL_PHPDBG=true
|
||||
```
|
||||
|
||||
|
||||
<a name="Setup remote debugging for PhpStorm on Linux"></a>
|
||||
## Setup remote debugging for PhpStorm on Linux
|
||||
@@ -356,24 +359,13 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
|
||||
<a name="Install-Deployer"></a>
|
||||
## Install Deployer (Deployment tool for PHP)
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
<br>
|
||||
2 - Search for the `INSTALL_DEPLOYER` argument under the Workspace Container
|
||||
2 - Search for the `WORKSPACE_INSTALL_DEPLOYER` argument under the Workspace Container
|
||||
<br>
|
||||
3 - Set it to `true`
|
||||
<br>
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_DEPLOYER=true
|
||||
...
|
||||
```
|
||||
|
||||
4 - Re-build the containers `docker-compose build workspace`
|
||||
|
||||
[**Deployer Documentation Here**](https://deployer.org/docs)
|
||||
@@ -382,6 +374,7 @@ It should be like this:
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Production"></a>
|
||||
|
||||
@@ -420,35 +413,15 @@ To learn more about how Docker publishes ports, please read [this excellent post
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Jenkins"></a>
|
||||
## Use Jenkins
|
||||
|
||||
1) Boot the container `docker-compose up -d jenkins`. To enter the container type `docker-compose exec jenkins bash`.
|
||||
|
||||
2) Go to `http://localhost:8090/` (if you didn't chanhed your default port mapping)
|
||||
|
||||
3) Authenticate from the web app.
|
||||
|
||||
- Default username is `admin`.
|
||||
- Default password is `docker-compose exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword`.
|
||||
|
||||
(To enter container as root type `docker-compose exec --user root jenkins bash`).
|
||||
|
||||
4) Install some plugins.
|
||||
|
||||
5) Create your first Admin user, or continue as Admin.
|
||||
|
||||
Note: to add user go to `http://localhost:8090/securityRealm/addUser` and to restart it from the web app visit `http://localhost:8090/restart`.
|
||||
|
||||
You may wanna change the default security configuration, so go to `http://localhost:8090/configureSecurity/` under Authorization and choosing "Anyone can do anything" or "Project-based Matrix Authorization Strategy" or anything else.
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Laravel"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Install-Laravel"></a>
|
||||
## Install Laravel from a Docker Container
|
||||
|
||||
@@ -568,6 +541,52 @@ docker-compose up -d php-worker
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-NetData"></a>
|
||||
## Use NetData
|
||||
|
||||
1 - Run the NetData Container (`netdata`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d netdata
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **19999**: `http://localhost:19999`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Jenkins"></a>
|
||||
## Use Jenkins
|
||||
|
||||
1) Boot the container `docker-compose up -d jenkins`. To enter the container type `docker-compose exec jenkins bash`.
|
||||
|
||||
2) Go to `http://localhost:8090/` (if you didn't chanhed your default port mapping)
|
||||
|
||||
3) Authenticate from the web app.
|
||||
|
||||
- Default username is `admin`.
|
||||
- Default password is `docker-compose exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword`.
|
||||
|
||||
(To enter container as root type `docker-compose exec --user root jenkins bash`).
|
||||
|
||||
4) Install some plugins.
|
||||
|
||||
5) Create your first Admin user, or continue as Admin.
|
||||
|
||||
Note: to add user go to `http://localhost:8090/securityRealm/addUser` and to restart it from the web app visit `http://localhost:8090/restart`.
|
||||
|
||||
You may wanna change the default security configuration, so go to `http://localhost:8090/configureSecurity/` under Authorization and choosing "Anyone can do anything" or "Project-based Matrix Authorization Strategy" or anything else.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Redis"></a>
|
||||
## Use Redis
|
||||
@@ -629,33 +648,16 @@ composer require predis/predis:^1.0
|
||||
|
||||
1 - First install `mongo` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_MONGO` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_MONGO` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_MONGO` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_MONGO` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_MONGO=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_MONGO=true
|
||||
...
|
||||
```
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
|
||||
@@ -755,6 +757,24 @@ 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>
|
||||
<a name="Use-pgAdmin"></a>
|
||||
## Use PgAdmin
|
||||
@@ -828,7 +848,7 @@ docker-compose up -d elasticsearch
|
||||
|
||||
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
|
||||
|
||||
@@ -907,6 +927,10 @@ docker-compose up -d rethinkdb
|
||||
- set the `DB_DATABASE` to `database`.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Minio"></a>
|
||||
## Use Minio
|
||||
@@ -939,6 +963,9 @@ docker-compose up -d minio
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-AWS"></a>
|
||||
## Use AWS
|
||||
@@ -954,7 +981,10 @@ docker-compose up -d aws
|
||||
|
||||
3 - Access the aws container with `docker-compose exec aws bash`
|
||||
|
||||
4 - To start using eb cli inside the container, initiaze your project first by doing 'eb init'. Read the [aws eb cli](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html) docs for more details.
|
||||
4 - To start using eb cli inside the container, initialize your project first by doing 'eb init'. Read the [aws eb cli](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html) docs for more details.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -972,7 +1002,10 @@ docker-compose up -d grafana
|
||||
|
||||
3 - Open your browser and visit the localhost on port **3000** at the following URL: `http://localhost:3000`
|
||||
|
||||
4 - Login using the credentials User = `admin` Passwort = `admin`. Change the password in the webinterface if you want to.
|
||||
4 - Login using the credentials User = `admin`, Password = `admin`. Change the password in the web interface if you want to.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -997,6 +1030,11 @@ To install CodeIgniter 3 on Laradock all you have to do is the following simple
|
||||
3 - Re-build your PHP-FPM Container `docker-compose build php-fpm`.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-Symfony"></a>
|
||||
## Install Symfony
|
||||
|
||||
@@ -1010,6 +1048,11 @@ To install CodeIgniter 3 on Laradock all you have to do is the following simple
|
||||
|
||||
5 - Visit `symfony.test`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Misc"></a>
|
||||
## Miscellaneous
|
||||
@@ -1058,6 +1101,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).
|
||||
|
||||
If you are on Windows, verify that the line endings for this file are LF only, otherwise the cron jobs will silently fail.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1091,6 +1136,11 @@ ssh -o PasswordAuthentication=no \
|
||||
|
||||
To login as root, replace laradock@locahost with root@localhost.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Change-the-MySQL-Version"></a>
|
||||
## Change the (MySQL) Version
|
||||
@@ -1145,6 +1195,7 @@ The default username and password for the root MySQL user are `root` and `root `
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Create-Multiple-Databases"></a>
|
||||
## Create Multiple Databases (MySQL)
|
||||
@@ -1159,6 +1210,8 @@ GRANT ALL ON `your_db_1`.* TO 'mysql_user'@'%' ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Change-MySQL-port"></a>
|
||||
## Change MySQL port
|
||||
@@ -1209,20 +1262,10 @@ server_name laravel.test;
|
||||
|
||||
Enabling Global Composer Install during the build for the container allows you to get your composer requirements installed and available in the container after the build is done.
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `COMPOSER_GLOBAL_INSTALL` argument under the Workspace Container and set it to `true`
|
||||
2 - Search for the `WORKSPACE_COMPOSER_GLOBAL_INSTALL` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- COMPOSER_GLOBAL_INSTALL=true
|
||||
...
|
||||
```
|
||||
3 - Now add your dependencies to `workspace/composer.json`
|
||||
|
||||
4 - Re-build the Workspace Container `docker-compose build workspace`
|
||||
@@ -1261,20 +1304,9 @@ c - Re-build the Workspace Container `docker-compose build workspace`
|
||||
|
||||
To install NVM and NodeJS in the Workspace container
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_NODE` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_NODE=true
|
||||
...
|
||||
```
|
||||
2 - Search for the `WORKSPACE_INSTALL_NODE` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@@ -1289,21 +1321,61 @@ It should be like this:
|
||||
|
||||
Yarn is a new package manager for JavaScript. It is so faster than npm, which you can find [here](http://yarnpkg.com/en/compare).To install NodeJS and [Yarn](https://yarnpkg.com/) in the Workspace container:
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_NODE` and `INSTALL_YARN` argument under the Workspace Container and set it to `true`
|
||||
2 - Search for the `WORKSPACE_INSTALL_NODE` and `WORKSPACE_INSTALL_YARN` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_NODE=true
|
||||
- INSTALL_YARN=true
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-GULP"></a>
|
||||
## Install NPM GULP toolkit
|
||||
|
||||
To install NPM GULP toolkit in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_GULP` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-BOWER"></a>
|
||||
## Install NPM BOWER package manager
|
||||
|
||||
To install NPM BOWER package manager in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_BOWER` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-VUE-CLI"></a>
|
||||
## Install NPM VUE CLI
|
||||
|
||||
To install NPM VUE CLI in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_VUE_CLI` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@@ -1318,20 +1390,9 @@ It should be like this:
|
||||
|
||||
Linuxbrew is a package manager for Linux. It is the Linux version of MacOS Homebrew and can be found [here](http://linuxbrew.sh). To install Linuxbrew in the Workspace container:
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_LINUXBREW` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_LINUXBREW=true
|
||||
...
|
||||
```
|
||||
2 - Search for the `WORKSPACE_INSTALL_LINUXBREW` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@@ -1339,6 +1400,7 @@ It should be like this:
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Common-Aliases"></a>
|
||||
<br>
|
||||
@@ -1351,38 +1413,23 @@ You are free to modify the `aliases.sh` as you see fit, adding your own aliases
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-Aerospike-Extension"></a>
|
||||
## Install Aerospike extension
|
||||
|
||||
1 - First install `aerospike` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_AEROSPIKE` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_AEROSPIKE` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_AEROSPIKE` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_AEROSPIKE` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_AEROSPIKE=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_AEROSPIKE=true
|
||||
...
|
||||
```
|
||||
<br>
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
@@ -1395,24 +1442,13 @@ It should be like this:
|
||||
<a name="Install-Laravel-Envoy"></a>
|
||||
## Install Laravel Envoy (Envoy Task Runner)
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
<br>
|
||||
2 - Search for the `INSTALL_LARAVEL_ENVOY` argument under the Workspace Container
|
||||
2 - Search for the `WORKSPACE_INSTALL_LARAVEL_ENVOY` argument under the Workspace Container
|
||||
<br>
|
||||
3 - Set it to `true`
|
||||
<br>
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_LARAVEL_ENVOY=true
|
||||
...
|
||||
```
|
||||
|
||||
4 - Re-build the containers `docker-compose build workspace`
|
||||
|
||||
[**Laravel Envoy Documentation Here**](https://laravel.com/docs/5.3/envoy)
|
||||
@@ -1422,7 +1458,6 @@ It should be like this:
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="phpstorm-debugging"></a>
|
||||
## PHPStorm Debugging Guide
|
||||
@@ -1435,7 +1470,6 @@ Remote debug Laravel web and phpunit tests.
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="keep-tracking-Laradock"></a>
|
||||
## Keep track of your Laradock changes
|
||||
@@ -1450,7 +1484,6 @@ Remote debug Laravel web and phpunit tests.
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="upgrading-laradock"></a>
|
||||
## Upgrading Laradock
|
||||
@@ -1471,9 +1504,6 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Speed-MacOS"></a>
|
||||
## Improve speed on MacOS
|
||||
@@ -1502,11 +1532,14 @@ Quick Setup giude, (we recommend you check their docs)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Docker-Sync"></a>
|
||||
### Workaround B: using d4m-nfs
|
||||
|
||||
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, the first is by using the built-in Laradock integration, and the second is using the tool separately. Below is show case of both methods:
|
||||
|
||||
|
||||
### B.1: using the built in d4m-nfs integration
|
||||
@@ -1591,8 +1624,6 @@ Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### B.2: using the d4m-nfs tool
|
||||
@@ -1611,7 +1642,7 @@ Click on the Docker Icon > Preferences > (remove everything form the list except
|
||||
git clone https://github.com/IFSight/d4m-nfs ~/d4m-nfs
|
||||
```
|
||||
|
||||
4) Create (or edit) the file `~/d4m-nfs/etc/d4m-nfs-mounts.txt`, and write the follwing configuration in it:
|
||||
4) Create (or edit) the file `~/d4m-nfs/etc/d4m-nfs-mounts.txt`, and write the following configuration in it:
|
||||
|
||||
```txt
|
||||
/Users:/Users
|
||||
@@ -1639,16 +1670,6 @@ docker-compose up ...
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Common-Problems"></a>
|
||||
## Common Problems
|
||||
@@ -1660,7 +1681,6 @@ docker-compose up ...
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I see a blank (white) page instead of the Laravel 'Welcome' page!
|
||||
|
||||
@@ -1674,6 +1694,7 @@ sudo chmod -R 777 storage bootstrap/cache
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I see "Welcome to nginx" instead of the Laravel App!
|
||||
|
||||
@@ -1683,6 +1704,7 @@ Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I see an error message containing `address already in use` or `port is already allocated`
|
||||
|
||||
@@ -1692,6 +1714,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I get NGINX error 404 Not Found on Windows.
|
||||
|
||||
@@ -1704,6 +1727,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## The time in my services does not match the current time
|
||||
|
||||
@@ -1714,6 +1738,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I get MySQL connection refused
|
||||
|
||||
@@ -1738,3 +1763,30 @@ Example:
|
||||
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
|
||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
## I get `Module build failed: Error: write EPIPE` while compiling react application
|
||||
|
||||
When you run `npm build` or `yarn dev` building a react application using webpack with elixir you may receive a `Error: write EPIPE` while processing .jpg images.
|
||||
|
||||
This is caused of an outdated library for processing **.jpg files** in ubuntu 16.04.
|
||||
|
||||
To fix the problem you can follow those steps
|
||||
|
||||
1 - Open the `.env`.
|
||||
|
||||
2 - Search for `WORKSPACE_INSTALL_LIBPNG` or add the key if missing.
|
||||
|
||||
3 - Set the value to true:
|
||||
|
||||
```dotenv
|
||||
WORKSPACE_INSTALL_LIBPNG=true
|
||||
```
|
||||
|
||||
4 - Finally rebuild the workspace image
|
||||
|
||||
```bash
|
||||
docker-compose build workspace
|
||||
```
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ weight: 2
|
||||
## Requirements
|
||||
|
||||
- [Git](https://git-scm.com/downloads)
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
|
||||
|
||||
|
||||
|
||||
@@ -143,7 +143,7 @@ If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://
|
||||
If you are using **Docker Toolbox** (VM), do one of the following:
|
||||
|
||||
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](/documentation/#upgrading-laradock)
|
||||
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/Laradock-ToolBox) branch. *(outdated)*
|
||||
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/LaraDock-ToolBox) branch. *(outdated)*
|
||||
|
||||
<br>
|
||||
|
||||
@@ -161,11 +161,13 @@ We recommend using a Docker version which is newer than 1.13.
|
||||
cp env-example .env
|
||||
```
|
||||
|
||||
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.
|
||||
You can edit the `.env` file to choose which software you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables have 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 `;`.
|
||||
|
||||
2 - Build the enviroment and run it using `docker-compose`
|
||||
By default the containers that will be created have the current directory name as suffix (e.g. `laradock_workspace_1`). This can cause mixture of data inside the container volumes if you use laradock in multiple projects. In this case, either read the guide for [multiple projects](#B) or change the variable `COMPOSE_PROJECT_NAME` to something unique like your project name.
|
||||
|
||||
2 - Build the environment and run it using `docker-compose`
|
||||
|
||||
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
|
||||
|
||||
@@ -173,7 +175,7 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
|
||||
docker-compose up -d nginx mysql
|
||||
```
|
||||
|
||||
**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...`.
|
||||
**Note**: All the web server containers `nginx`, `apache` ..etc depends on `php-fpm`, which means if you run any of them, they will automatically launch the `php-fpm` container for you, so no need to explicitly specify it in the `up` command. If you have to do so, you may need to run them as follows: `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).
|
||||
@@ -203,7 +205,7 @@ docker-compose exec --user=laradock workspace bash
|
||||
*You can change the PUID (User id) and PGID (group id) variables from the `.env` file)*
|
||||
|
||||
<br>
|
||||
4 - Update your project configurations to use the database host
|
||||
4 - Update your project configuration to use the database host
|
||||
|
||||
Open your PHP project's `.env` file or whichever configuration file you are reading from, and set the database host `DB_HOST` to `mysql`:
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
|
||||
- **Queueing Management:**
|
||||
Beanstalkd Console - RabbitMQ Console
|
||||
- **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 - NetData - Portainer - Laravel Echo...
|
||||
|
||||
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.
|
||||
|
||||
@@ -14,4 +14,4 @@ EXPOSE 80 443 2015
|
||||
|
||||
WORKDIR /var/www/public
|
||||
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
|
||||
|
||||
@@ -48,7 +48,9 @@ services:
|
||||
context: ./workspace
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
||||
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
||||
- INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
||||
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
|
||||
@@ -60,9 +62,13 @@ services:
|
||||
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
|
||||
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
|
||||
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
|
||||
- INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP}
|
||||
- INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER}
|
||||
- INSTALL_NPM_VUE_CLI=${WORKSPACE_INSTALL_NPM_VUE_CLI}
|
||||
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
|
||||
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
|
||||
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
|
||||
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
|
||||
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
|
||||
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
|
||||
@@ -81,15 +87,16 @@ services:
|
||||
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
|
||||
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
|
||||
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
|
||||
- INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG}
|
||||
- PUID=${WORKSPACE_PUID}
|
||||
- PGID=${WORKSPACE_PGID}
|
||||
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
||||
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
|
||||
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
|
||||
- DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION}
|
||||
- TZ=${WORKSPACE_TIMEZONE}
|
||||
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
|
||||
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
|
||||
- DRUSH_VERSION=${DRUSH_VERSION}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
extra_hosts:
|
||||
@@ -110,6 +117,7 @@ services:
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
||||
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
||||
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
||||
@@ -124,6 +132,7 @@ services:
|
||||
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
|
||||
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
|
||||
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
|
||||
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
|
||||
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
|
||||
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
|
||||
@@ -143,8 +152,13 @@ services:
|
||||
- "dockerhost:${DOCKER_HOST_IP}"
|
||||
environment:
|
||||
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
||||
- DOCKER_HOST=tcp://docker-in-docker:2375
|
||||
depends_on:
|
||||
- workspace
|
||||
networks:
|
||||
- backend
|
||||
links:
|
||||
- docker-in-docker
|
||||
|
||||
### PHP Worker ############################################
|
||||
php-worker:
|
||||
@@ -317,6 +331,7 @@ services:
|
||||
build: ./postgres
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
|
||||
- ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- "${POSTGRES_PORT}:5432"
|
||||
environment:
|
||||
@@ -694,3 +709,36 @@ services:
|
||||
depends_on:
|
||||
- workspace
|
||||
tty: true
|
||||
|
||||
### Portainer ################################################
|
||||
portainer:
|
||||
build:
|
||||
context: ./portainer
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/portainer_data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 9010:9000
|
||||
|
||||
### Docker-in-Docker ################################################
|
||||
docker-in-docker:
|
||||
image: docker:dind
|
||||
privileged: true
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
expose:
|
||||
- 2375
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### NetData ################################################
|
||||
netdata:
|
||||
image: titpetric/netdata:latest
|
||||
cap_add:
|
||||
- SYS_PTRACE
|
||||
volumes:
|
||||
- /:/host:ro
|
||||
ports:
|
||||
- "${NETDATA_PORT}:19999"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
@@ -6,7 +6,7 @@ syncs:
|
||||
applications-docker-sync: # name of the intermediary sync volume
|
||||
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_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
||||
|
||||
|
||||
28
env-example
28
env-example
@@ -29,9 +29,12 @@ COMPOSE_FILE=docker-compose.yml
|
||||
# Change the separator from : to ; on Windows
|
||||
COMPOSE_PATH_SEPARATOR=:
|
||||
|
||||
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
|
||||
COMPOSE_PROJECT_NAME=laradock
|
||||
|
||||
### 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 - 5.5
|
||||
# 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 #######################################
|
||||
@@ -70,17 +73,21 @@ DOCKER_SYNC_STRATEGY=native_osx
|
||||
|
||||
### WORKSPACE #############################################
|
||||
|
||||
|
||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
||||
WORKSPACE_INSTALL_NODE=true
|
||||
WORKSPACE_NODE_VERSION=stable
|
||||
WORKSPACE_NODE_VERSION=node
|
||||
WORKSPACE_NPM_REGISTRY=
|
||||
WORKSPACE_INSTALL_YARN=true
|
||||
WORKSPACE_YARN_VERSION=latest
|
||||
WORKSPACE_INSTALL_NPM_GULP=true
|
||||
WORKSPACE_INSTALL_NPM_BOWER=true
|
||||
WORKSPACE_INSTALL_NPM_VUE_CLI=true
|
||||
WORKSPACE_INSTALL_PHPREDIS=true
|
||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||
WORKSPACE_INSTALL_SUBVERSION=false
|
||||
WORKSPACE_INSTALL_XDEBUG=false
|
||||
WORKSPACE_INSTALL_PHPDBG=false
|
||||
WORKSPACE_INSTALL_LDAP=false
|
||||
WORKSPACE_INSTALL_SOAP=false
|
||||
WORKSPACE_INSTALL_IMAP=false
|
||||
@@ -88,6 +95,7 @@ WORKSPACE_INSTALL_MONGO=false
|
||||
WORKSPACE_INSTALL_AMQP=false
|
||||
WORKSPACE_INSTALL_MSSQL=false
|
||||
WORKSPACE_INSTALL_DRUSH=false
|
||||
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
||||
WORKSPACE_INSTALL_AEROSPIKE=false
|
||||
WORKSPACE_INSTALL_V8JS=false
|
||||
@@ -105,6 +113,7 @@ WORKSPACE_INSTALL_TERRAFORM=false
|
||||
WORKSPACE_INSTALL_DUSK_DEPS=false
|
||||
WORKSPACE_INSTALL_PG_CLIENT=false
|
||||
WORKSPACE_INSTALL_SWOOLE=false
|
||||
WORKSPACE_INSTALL_LIBPNG=false
|
||||
WORKSPACE_PUID=1000
|
||||
WORKSPACE_PGID=1000
|
||||
WORKSPACE_CHROME_DRIVER_VERSION=2.32
|
||||
@@ -124,6 +133,7 @@ PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
||||
PHP_FPM_INSTALL_PHPREDIS=true
|
||||
PHP_FPM_INSTALL_MEMCACHED=false
|
||||
PHP_FPM_INSTALL_XDEBUG=false
|
||||
PHP_FPM_INSTALL_PHPDBG=false
|
||||
PHP_FPM_INSTALL_IMAP=false
|
||||
PHP_FPM_INSTALL_MONGO=false
|
||||
PHP_FPM_INSTALL_AMQP=false
|
||||
@@ -133,11 +143,11 @@ PHP_FPM_INSTALL_GMP=false
|
||||
PHP_FPM_INSTALL_EXIF=false
|
||||
PHP_FPM_INSTALL_AEROSPIKE=false
|
||||
PHP_FPM_INSTALL_PGSQL=false
|
||||
PHP_FPM_INSTALL_POSTGRES=false
|
||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||
PHP_FPM_INSTALL_LDAP=false
|
||||
PHP_FPM_INSTALL_SWOOLE=false
|
||||
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||
PHP_FPM_INSTALL_PCNTL=false
|
||||
|
||||
### PHP_WORKER ############################################
|
||||
|
||||
@@ -207,6 +217,7 @@ POSTGRES_DB=default
|
||||
POSTGRES_USER=default
|
||||
POSTGRES_PASSWORD=secret
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d
|
||||
|
||||
### RABBITMQ ##############################################
|
||||
|
||||
@@ -321,8 +332,8 @@ AEROSPIKE_INFO_PORT=3003
|
||||
|
||||
## Temp solution, this should be in the dockerfile
|
||||
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
|
||||
# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz"
|
||||
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-in-progress.tar.gz
|
||||
# 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 #############################################
|
||||
|
||||
@@ -349,6 +360,5 @@ SOLR_VERSION=5.5
|
||||
SOLR_PORT=8983
|
||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
|
||||
### DRUSH_VERSION #########################################
|
||||
|
||||
DRUSH_VERSION=9.2.3
|
||||
### NETDATA ###############################################
|
||||
NETDATA_PORT=19999
|
||||
|
||||
@@ -93,7 +93,7 @@ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.
|
||||
```
|
||||
|
||||
# Configuring reverse proxy
|
||||
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environnement variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
||||
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environment variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
||||
- [Apache](https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache)
|
||||
- [Nginx](https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy)
|
||||
|
||||
@@ -154,7 +154,7 @@ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
|
||||
## Preinstalling plugins
|
||||
|
||||
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
|
||||
Use plugin artifact ID, whithout `-plugin` extension, and append the version if needed separated by `:`.
|
||||
Use plugin artifact ID, without `-plugin` extension, and append the version if needed separated by `:`.
|
||||
Dependencies that are already included in the Jenkins war will only be downloaded if their required version is newer than the one included.
|
||||
|
||||
```
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM docker.elastic.co/kibana/kibana:5.4.1
|
||||
FROM docker.elastic.co/kibana/kibana:6.2.3
|
||||
|
||||
EXPOSE 5601
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
[mysql]
|
||||
|
||||
[mysqld]
|
||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
|
||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
|
||||
character-set-server=utf8
|
||||
|
||||
@@ -18,6 +18,14 @@ FROM laradock/php-fpm:2.2-${PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
RUN apt-get update -yqq && \
|
||||
apt-get install -y apt-utils && \
|
||||
pecl channel-update pecl.php.net
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
@@ -48,7 +56,7 @@ ARG INSTALL_SOAP=false
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
apt-get update -yqq && \
|
||||
rm /etc/apt/preferences.d/no-debian-php && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
@@ -85,14 +93,34 @@ RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
ARG INSTALL_XDEBUG=false
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug \
|
||||
# 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
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Phpdbg:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPDBG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Blackfire:
|
||||
###########################################################################
|
||||
@@ -128,8 +156,16 @@ ARG INSTALL_SWOOLE=false
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl install swoole \
|
||||
&& docker-php-ext-enable swoole \
|
||||
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
|
||||
|
||||
###########################################################################
|
||||
@@ -140,6 +176,10 @@ ARG INSTALL_MONGO=false
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
docker-php-ext-enable mongo \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
@@ -164,10 +204,22 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
apt-get install libzip-dev -y && \
|
||||
docker-php-ext-configure zip --with-libzip && \
|
||||
# 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:
|
||||
###########################################################################
|
||||
@@ -187,7 +239,10 @@ ARG INSTALL_GMP=false
|
||||
|
||||
RUN if [ ${INSTALL_GMP} = true ]; then \
|
||||
# Install the GMP extension
|
||||
apt-get install -y libgmp-dev && \
|
||||
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
|
||||
|
||||
@@ -199,7 +254,11 @@ 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" \
|
||||
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 \
|
||||
&& ( \
|
||||
@@ -232,20 +291,35 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
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
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
||||
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 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& \
|
||||
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
|
||||
@@ -291,7 +365,6 @@ 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 \
|
||||
@@ -330,23 +403,31 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
ARG INSTALL_MSSQL=false
|
||||
|
||||
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 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' \
|
||||
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
|
||||
|
||||
###########################################################################
|
||||
@@ -358,7 +439,7 @@ USER root
|
||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
|
||||
apt-get install -y jpegoptim optipng pngquant gifsicle \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
|
||||
@@ -22,7 +22,7 @@ RUN apk --update add wget \
|
||||
libgsasl-dev \
|
||||
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
|
||||
|
||||
# Install PostgreSQL drivers:
|
||||
|
||||
3
portainer/Dockerfile
Normal file
3
portainer/Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
||||
FROM portainer/portainer
|
||||
|
||||
LABEL maintainer="luciano@lucianojr.com.br"
|
||||
1
postgres/docker-entrypoint-initdb.d/.gitignore
vendored
Normal file
1
postgres/docker-entrypoint-initdb.d/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.sh
|
||||
34
postgres/docker-entrypoint-initdb.d/createdb.sh.example
Normal file
34
postgres/docker-entrypoint-initdb.d/createdb.sh.example
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copy createdb.sh.example to createdb.sh
|
||||
# then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER myuser WITH PASSWORD 'mypassword';
|
||||
# CREATE DATABASE myshop_db;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
|
||||
# EOSQL
|
||||
#
|
||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
||||
#
|
||||
|
||||
set -e
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||
# CREATE DATABASE db1;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||
# EOSQL
|
||||
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||
# CREATE DATABASE db2;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||
# EOSQL
|
||||
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||
# CREATE DATABASE db3;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
|
||||
# EOSQL
|
||||
@@ -18,6 +18,9 @@ FROM laradock/workspace:2.2-${PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Start as root
|
||||
USER root
|
||||
|
||||
@@ -31,7 +34,10 @@ ENV PUID ${PUID}
|
||||
ARG PGID=1000
|
||||
ENV PGID ${PGID}
|
||||
|
||||
RUN groupadd -g ${PGID} laradock && \
|
||||
# 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
|
||||
|
||||
@@ -145,6 +151,27 @@ 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:
|
||||
###########################################################################
|
||||
@@ -182,6 +209,19 @@ 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:
|
||||
###########################################################################
|
||||
@@ -193,7 +233,7 @@ ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-xdebug && \
|
||||
apt-get install -y php${PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||
;fi
|
||||
@@ -201,6 +241,24 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Phpdbg:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_PHPDBG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Blackfire:
|
||||
###########################################################################
|
||||
@@ -248,7 +306,12 @@ ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl -q install mongodb && \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
echo "extension=mongo.so" >> /etc/php/${PHP_VERSION}/mods-available/mongo.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongo.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
@@ -290,25 +353,28 @@ ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl -q install swoole && \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl -q 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 && \
|
||||
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/cli/conf.d/20-swoole.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Drush:
|
||||
# Libpng16 EXTENSION
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
ARG INSTALL_LIBPNG=false
|
||||
|
||||
ARG INSTALL_DRUSH=false
|
||||
|
||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||
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 \
|
||||
RUN if [ ${INSTALL_LIBPNG} = true ]; then \
|
||||
apt update && \
|
||||
apt install libpng16-16 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@@ -333,24 +399,35 @@ USER laradock
|
||||
###########################################################################
|
||||
|
||||
# Check if NVM needs to be installed
|
||||
ARG NODE_VERSION=stable
|
||||
ARG NODE_VERSION=node
|
||||
ENV NODE_VERSION ${NODE_VERSION}
|
||||
ARG INSTALL_NODE=false
|
||||
ARG INSTALL_NPM_GULP=false
|
||||
ARG INSTALL_NPM_BOWER=false
|
||||
ARG INSTALL_NPM_VUE_CLI=false
|
||||
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 \
|
||||
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 \
|
||||
&& if [ ${INSTALL_NPM_GULP} = true ]; then \
|
||||
npm install -g gulp \
|
||||
;fi \
|
||||
&& if [ ${INSTALL_NPM_BOWER} = true ]; then \
|
||||
npm install -g bower \
|
||||
;fi \
|
||||
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
|
||||
npm install -g @vue/cli \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
@@ -415,6 +492,7 @@ USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
ARG AEROSPIKE_PHP_REPOSITORY
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Fix dependencies for PHPUnit within aerospike extension
|
||||
@@ -551,34 +629,40 @@ ARG INSTALL_MSSQL=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
###########################################################################
|
||||
# The following steps were taken from
|
||||
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
||||
###########################################################################
|
||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||
apt-get update -yqq && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq \
|
||||
unixodbc \
|
||||
unixodbc-dev \
|
||||
libgss3 \
|
||||
odbcinst \
|
||||
msodbcsql \
|
||||
locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
||||
apt-get install -y locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
|
||||
&& php -m | grep -q 'mssql' \
|
||||
&& php -m | grep -q 'pdo_dblib' \
|
||||
;else \
|
||||
###########################################################################
|
||||
# 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 -yqq && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq \
|
||||
unixodbc \
|
||||
unixodbc-dev \
|
||||
libgss3 \
|
||||
odbcinst \
|
||||
msodbcsql \
|
||||
locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
||||
apt-get install -y locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@@ -605,9 +689,9 @@ USER root
|
||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle && \
|
||||
apt-get install -y jpegoptim optipng pngquant gifsicle && \
|
||||
if [ ${INSTALL_NODE} = true ]; then \
|
||||
. ~/.bashrc && npm install -g svgo \
|
||||
exec bash && . ~/.bashrc && npm install -g svgo \
|
||||
;fi\
|
||||
;fi
|
||||
|
||||
@@ -641,8 +725,8 @@ ARG INSTALL_PYTHON=false
|
||||
|
||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
||||
apt-get -y install python python-pip python-dev build-essential \
|
||||
&& pip install --upgrade pip \
|
||||
&& pip install --upgrade virtualenv \
|
||||
&& python -m pip install --upgrade pip \
|
||||
&& python -m pip install --upgrade virtualenv \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@@ -654,7 +738,7 @@ USER root
|
||||
ARG INSTALL_IMAGEMAGICK=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
||||
apt-get install -y --force-yes imagemagick php-imagick \
|
||||
apt-get install -y imagemagick php-imagick \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@@ -685,6 +769,15 @@ RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
apt-get -y install postgresql-client \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# nasm
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get -yqq install nasm
|
||||
|
||||
###########################################################################
|
||||
# Dusk Dependencies:
|
||||
###########################################################################
|
||||
|
||||
Reference in New Issue
Block a user