Compare commits
69 Commits
Author | SHA1 | Date | |
---|---|---|---|
cf46b87a01 | |||
0af2115658 | |||
c1e8e955a1 | |||
0ffea858d6 | |||
549094d7d2 | |||
7219b3543a | |||
1dac382827 | |||
876336bc1a | |||
538b6aa0cd | |||
c886831613 | |||
9cfe5c6156 | |||
db02fe7570 | |||
436df887c9 | |||
919cde3a76 | |||
784aab2043 | |||
d5d9073863 | |||
6a3b3fac2d | |||
61576c0b1b | |||
70c1be4168 | |||
e101e4d5b2 | |||
4658820437 | |||
0bbfb2d228 | |||
86a4108ef4 | |||
20c85904c5 | |||
aaef73c84d | |||
876935452e | |||
00df369e96 | |||
902198ab05 | |||
2e2cb6df22 | |||
39469e1404 | |||
947a791ad2 | |||
aa84dd8616 | |||
b788a8bbfd | |||
89051de67d | |||
1b865dd153 | |||
8180804ae0 | |||
303dadf33d | |||
764e484599 | |||
e92f08e323 | |||
1acbebc2a3 | |||
b2ab970d04 | |||
679d2b0aba | |||
fbc2afee71 | |||
1962327de1 | |||
d8b2b8c233 | |||
0f65c60a89 | |||
8624335f61 | |||
7ef36daaba | |||
4ce25e95b4 | |||
20b0181b6d | |||
dc234b9b28 | |||
29483bab8c | |||
85c57a0b6f | |||
2f996450e5 | |||
1823060c4b | |||
6fa2b75bb7 | |||
2ec23122e7 | |||
a1e01ac19b | |||
eccc149f45 | |||
9cb7624da7 | |||
cd1c56c1e2 | |||
9d42ea6b9d | |||
b0bfa5f1d3 | |||
dcf6b6d9ac | |||
1d9cbd7c75 | |||
fd56c4dcda | |||
0351cf531b | |||
09e998b723 | |||
06d0105514 |
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
##### I completed the 3 steps below:
|
##### I completed the 3 steps below:
|
||||||
|
|
||||||
- [] I've read the [Contribution Guide](http://laradock.io/contributing).
|
- [ ] I've read the [Contribution Guide](http://laradock.io/contributing).
|
||||||
- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
||||||
- [] I enjoyed my time contributing and making developer's life easier :)
|
- [ ] I enjoyed my time contributing and making developer's life easier :)
|
||||||
|
2
.github/README.md
vendored
2
.github/README.md
vendored
@ -1,5 +1,5 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://s19.postimg.org/jblfytw9f/laradock-logo.jpg" alt="Laradock Logo"/>
|
<img src="/.github/home-page-images/laradock-logo.jpg?raw=true" alt="Laradock Logo"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>
|
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>
|
||||||
|
BIN
.github/home-page-images/laradock-logo.jpg
vendored
Normal file
BIN
.github/home-page-images/laradock-logo.jpg
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 287 KiB |
@ -1,4 +1,4 @@
|
|||||||
baseurl = "http://laradock.io/"
|
baseurl = "https://laradock.io/"
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
publishDir = "../docs"
|
publishDir = "../docs"
|
||||||
title = "Laradock"
|
title = "Laradock"
|
||||||
|
@ -7,6 +7,8 @@ weight: 3
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="List-current-running-Containers"></a>
|
<a name="List-current-running-Containers"></a>
|
||||||
## List current running Containers
|
## List current running Containers
|
||||||
```bash
|
```bash
|
||||||
@ -134,6 +136,7 @@ More info on Containers rebuilding [here](#Build-Re-build-Containers).
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Build-Re-build-Containers"></a>
|
<a name="Build-Re-build-Containers"></a>
|
||||||
## Build/Re-build Containers
|
## Build/Re-build Containers
|
||||||
@ -155,6 +158,7 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Add-Docker-Images"></a>
|
<a name="Add-Docker-Images"></a>
|
||||||
## Add more Software (Docker Images)
|
## Add more Software (Docker Images)
|
||||||
@ -188,8 +192,6 @@ More [options](https://docs.docker.com/compose/reference/logs/)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="PHP"></a>
|
<a name="PHP"></a>
|
||||||
|
|
||||||
@ -243,6 +245,8 @@ docker-compose build php-fpm
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-the-PHP-CLI-Version"></a>
|
<a name="Change-the-PHP-CLI-Version"></a>
|
||||||
## Change the PHP-CLI Version
|
## Change the PHP-CLI Version
|
||||||
@ -271,6 +275,8 @@ docker-compose build workspace
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Install-xDebug"></a>
|
<a name="Install-xDebug"></a>
|
||||||
## Install xDebug
|
## Install xDebug
|
||||||
@ -291,11 +297,33 @@ e) set it to `true`
|
|||||||
|
|
||||||
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.
|
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>
|
<a name="Setup remote debugging for PhpStorm on Linux"></a>
|
||||||
## Setup remote debugging for PhpStorm on Linux
|
## Setup remote debugging for PhpStorm on Linux
|
||||||
|
|
||||||
- Make sure you have followed the steps above in the [Install Xdebug section](http://laradock.io/documentation/#install-xdebug).
|
- Make sure you have followed the steps above in the [Install Xdebug section](#install-xdebug).
|
||||||
|
|
||||||
- Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration).
|
- Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration).
|
||||||
|
|
||||||
@ -325,6 +353,28 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-ionCube-Loader"></a>
|
||||||
|
## Install ionCube Loader
|
||||||
|
|
||||||
|
1 - First install `ionCube Loader` in the Workspace and the PHP-FPM Containers:
|
||||||
|
<br>
|
||||||
|
a) open the `.env` file
|
||||||
|
<br>
|
||||||
|
b) search for the `WORKSPACE_INSTALL_IONCUBE` argument under the Workspace Container
|
||||||
|
<br>
|
||||||
|
c) set it to `true`
|
||||||
|
<br>
|
||||||
|
d) search for the `PHP_FPM_INSTALL_IONCUBE` argument under the PHP-FPM Container
|
||||||
|
<br>
|
||||||
|
e) set it to `true`
|
||||||
|
|
||||||
|
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||||
|
|
||||||
|
Always download the latest version of [Loaders for ionCube ](http://www.ioncube.com/loaders.php).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
@ -346,6 +396,7 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Production"></a>
|
<a name="Production"></a>
|
||||||
|
|
||||||
@ -378,41 +429,21 @@ To learn more about how Docker publishes ports, please read [this excellent post
|
|||||||
<a name="Digital-Ocean"></a>
|
<a name="Digital-Ocean"></a>
|
||||||
## Setup Laravel and Docker on Digital Ocean
|
## Setup Laravel and Docker on Digital Ocean
|
||||||
|
|
||||||
### [Full Guide Here](https://github.com/laradock/laradock/blob/master/_guides/digital_ocean.md)
|
### [Full Guide Here](/guides/#Digital-Ocean)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<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 change 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>
|
<br>
|
||||||
<a name="Laravel"></a>
|
<a name="Laravel"></a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="Install-Laravel"></a>
|
<a name="Install-Laravel"></a>
|
||||||
## Install Laravel from a Docker Container
|
## Install Laravel from a Docker Container
|
||||||
|
|
||||||
@ -513,6 +544,8 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
|
|||||||
context: ./php-worker
|
context: ./php-worker
|
||||||
args:
|
args:
|
||||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
||||||
|
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} #Optionally install BCMath php package
|
||||||
|
- INSTALL_SOAP=${PHP_WORKER_INSTALL_SOAP} #Optionally install Soap php package
|
||||||
volumes_from:
|
volumes_from:
|
||||||
- applications
|
- applications
|
||||||
depends_on:
|
depends_on:
|
||||||
@ -532,6 +565,87 @@ docker-compose up -d php-worker
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Mailu"></a>
|
||||||
|
## Use Mailu
|
||||||
|
|
||||||
|
1 - You need register a domain.
|
||||||
|
|
||||||
|
2 - Required RECAPTCHA for signup email [HERE](https://www.google.com/recaptcha/admin)
|
||||||
|
|
||||||
|
2 - modify following environment variable in `.env` file
|
||||||
|
|
||||||
|
```
|
||||||
|
MAILU_RECAPTCHA_PUBLIC_KEY=<YOUR_RECAPTCHA_PUBLIC_KEY>
|
||||||
|
MAILU_RECAPTCHA_PRIVATE_KEY=<YOUR_RECAPTCHA_PRIVATE_KEY>
|
||||||
|
MAILU_DOMAIN=laradock.io
|
||||||
|
MAILU_HOSTNAMES=mail.laradock.io
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Open your browser and visit `http://YOUR_DOMAIN`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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-Metabase"></a>
|
||||||
|
## Use Metabase
|
||||||
|
|
||||||
|
1 - Run the Metabase Container (`metbase`) with the `docker-compose up` command. Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d metabase
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Open your browser and visit the localhost on port **3030**: `http://localhost:3030`
|
||||||
|
|
||||||
|
3 - You can use environment to configure Metabase container. See docs in: [Running Metabase on Docker](https://www.metabase.com/docs/v0.12.0/operations-guide/running-metabase-on-docker.html)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<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>
|
<br>
|
||||||
<a name="Use-Redis"></a>
|
<a name="Use-Redis"></a>
|
||||||
## Use Redis
|
## Use Redis
|
||||||
@ -684,6 +798,25 @@ docker-compose up -d mariadb phpmyadmin
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Gitlab"></a>
|
||||||
|
## Use Gitlab
|
||||||
|
|
||||||
|
1 - Run the Gitlab Container (`gitlab`) with the `docker-compose up` command. Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d gitlab
|
||||||
|
```
|
||||||
|
|
||||||
|
2 - Open your browser and visit the localhost on port **8989**: `http://localhost:8989`
|
||||||
|
<br>
|
||||||
|
*Note: You may change GITLAB_DOMAIN_NAME to your own domain name like `http://gitlab.example.com` default is `http://localhost`*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Adminer"></a>
|
<a name="Use-Adminer"></a>
|
||||||
## Use Adminer
|
## Use Adminer
|
||||||
@ -701,6 +834,8 @@ docker-compose up -d adminer
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Portainer"></a>
|
<a name="Use-Portainer"></a>
|
||||||
## Use Portainer
|
## Use Portainer
|
||||||
@ -717,6 +852,7 @@ docker-compose up -d portainer
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-pgAdmin"></a>
|
<a name="Use-pgAdmin"></a>
|
||||||
## Use PgAdmin
|
## Use PgAdmin
|
||||||
@ -869,6 +1005,10 @@ docker-compose up -d rethinkdb
|
|||||||
- set the `DB_DATABASE` to `database`.
|
- set the `DB_DATABASE` to `database`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Minio"></a>
|
<a name="Use-Minio"></a>
|
||||||
## Use Minio
|
## Use Minio
|
||||||
@ -901,6 +1041,30 @@ docker-compose up -d minio
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Use-Thumbor"></a>
|
||||||
|
## Use Thumbor
|
||||||
|
|
||||||
|
Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images. ([Thumbor](https://github.com/thumbor/thumbor))
|
||||||
|
|
||||||
|
1 - Configure Thumbor:
|
||||||
|
- Checkout all the options under the thumbor settings
|
||||||
|
|
||||||
|
|
||||||
|
2 - Run the Thumbor Container (`minio`) with the `docker-compose up` command. Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d thumbor
|
||||||
|
```
|
||||||
|
|
||||||
|
3 - Navigate to an example image on `http://localhost:8000/unsafe/300x300/i.imgur.com/bvjzPct.jpg`
|
||||||
|
|
||||||
|
For more documentation on Thumbor visit the [Thumbor documenation](http://thumbor.readthedocs.io/en/latest/index.html) page
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-AWS"></a>
|
<a name="Use-AWS"></a>
|
||||||
## Use AWS
|
## Use AWS
|
||||||
@ -920,6 +1084,9 @@ docker-compose up -d aws
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Use-Grafana"></a>
|
<a name="Use-Grafana"></a>
|
||||||
## Use Grafana
|
## Use Grafana
|
||||||
@ -938,6 +1105,9 @@ docker-compose up -d grafana
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="CodeIgniter"></a>
|
<a name="CodeIgniter"></a>
|
||||||
|
|
||||||
@ -959,6 +1129,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`.
|
3 - Re-build your PHP-FPM Container `docker-compose build php-fpm`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
<a name="Install-Symfony"></a>
|
<a name="Install-Symfony"></a>
|
||||||
## Install Symfony
|
## Install Symfony
|
||||||
|
|
||||||
@ -972,6 +1147,11 @@ To install CodeIgniter 3 on Laradock all you have to do is the following simple
|
|||||||
|
|
||||||
5 - Visit `symfony.test`
|
5 - Visit `symfony.test`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Misc"></a>
|
<a name="Misc"></a>
|
||||||
## Miscellaneous
|
## Miscellaneous
|
||||||
@ -1055,6 +1235,11 @@ ssh -o PasswordAuthentication=no \
|
|||||||
|
|
||||||
To login as root, replace laradock@locahost with root@localhost.
|
To login as root, replace laradock@locahost with root@localhost.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-the-MySQL-Version"></a>
|
<a name="Change-the-MySQL-Version"></a>
|
||||||
## Change the (MySQL) Version
|
## Change the (MySQL) Version
|
||||||
@ -1109,6 +1294,7 @@ The default username and password for the root MySQL user are `root` and `root `
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Create-Multiple-Databases"></a>
|
<a name="Create-Multiple-Databases"></a>
|
||||||
## Create Multiple Databases (MySQL)
|
## Create Multiple Databases (MySQL)
|
||||||
@ -1123,6 +1309,8 @@ GRANT ALL ON `your_db_1`.* TO 'mysql_user'@'%' ;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Change-MySQL-port"></a>
|
<a name="Change-MySQL-port"></a>
|
||||||
## Change MySQL port
|
## Change MySQL port
|
||||||
@ -1311,6 +1499,7 @@ Linuxbrew is a package manager for Linux. It is the Linux version of MacOS Homeb
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Common-Aliases"></a>
|
<a name="Common-Aliases"></a>
|
||||||
<br>
|
<br>
|
||||||
@ -1323,6 +1512,7 @@ You are free to modify the `aliases.sh` as you see fit, adding your own aliases
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Install-Aerospike-Extension"></a>
|
<a name="Install-Aerospike-Extension"></a>
|
||||||
## Install Aerospike extension
|
## Install Aerospike extension
|
||||||
@ -1365,6 +1555,41 @@ e) set it to `true`
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Install php calendar extension"></a>
|
||||||
|
## Install php calendar extension
|
||||||
|
|
||||||
|
1 - Open the `.env` file
|
||||||
|
<br>
|
||||||
|
2 - Search for the `PHP_FPM_INSTALL_CALENDAR` argument under the PHP-FPM container
|
||||||
|
<br>
|
||||||
|
3 - Set it to `true`
|
||||||
|
<br>
|
||||||
|
4 - Re-build the containers `docker-compose build php-fpm`
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<a name="Install-Faketime"></a>
|
||||||
|
## Install libfaketime in the php-fpm container
|
||||||
|
Libfaketime allows you to control the date and time that is returned from the operating system.
|
||||||
|
It can be used by specifying a special string in the `PHP_FPM_FAKETIME` variable in the `.env` file.
|
||||||
|
For example:
|
||||||
|
`PHP_FPM_FAKETIME=-1d`
|
||||||
|
will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for more information.
|
||||||
|
|
||||||
|
1 - Open the `.env` file
|
||||||
|
<br>
|
||||||
|
2 - Search for the `PHP_FPM_INSTALL_FAKETIME` argument under the PHP-FPM container
|
||||||
|
<br>
|
||||||
|
3 - Set it to `true`
|
||||||
|
<br>
|
||||||
|
4 - Search for the `PHP_FPM_FAKETIME` argument under the PHP-FPM container
|
||||||
|
<br>
|
||||||
|
5 - Set it to the desired string
|
||||||
|
<br>
|
||||||
|
6 - Re-build the containers `docker-compose build php-fpm`<br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1373,8 +1598,7 @@ e) set it to `true`
|
|||||||
## PHPStorm Debugging Guide
|
## PHPStorm Debugging Guide
|
||||||
Remote debug Laravel web and phpunit tests.
|
Remote debug Laravel web and phpunit tests.
|
||||||
|
|
||||||
[**Debugging Guide Here**](https://github.com/laradock/laradock/blob/master/_guides/phpstorm.md)
|
[**Debugging Guide Here**](/guides/#PHPStorm-Debugging)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1395,7 +1619,6 @@ Remote debug Laravel web and phpunit tests.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="upgrading-laradock"></a>
|
<a name="upgrading-laradock"></a>
|
||||||
## Upgrading Laradock
|
## Upgrading Laradock
|
||||||
@ -1416,9 +1639,6 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Speed-MacOS"></a>
|
<a name="Speed-MacOS"></a>
|
||||||
## Improve speed on MacOS
|
## Improve speed on MacOS
|
||||||
@ -1447,6 +1667,9 @@ Quick Setup giude, (we recommend you check their docs)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Docker-Sync"></a>
|
<a name="Docker-Sync"></a>
|
||||||
### Workaround B: using d4m-nfs
|
### Workaround B: using d4m-nfs
|
||||||
@ -1536,8 +1759,6 @@ 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
|
||||||
@ -1584,16 +1805,6 @@ docker-compose up ...
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<a name="Common-Problems"></a>
|
<a name="Common-Problems"></a>
|
||||||
## Common Problems
|
## Common Problems
|
||||||
@ -1605,7 +1816,6 @@ docker-compose up ...
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## I see a blank (white) page instead of the Laravel 'Welcome' page!
|
## I see a blank (white) page instead of the Laravel 'Welcome' page!
|
||||||
|
|
||||||
@ -1619,6 +1829,7 @@ sudo chmod -R 777 storage bootstrap/cache
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## I see "Welcome to nginx" instead of the Laravel App!
|
## I see "Welcome to nginx" instead of the Laravel App!
|
||||||
|
|
||||||
@ -1628,6 +1839,7 @@ Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## I see an error message containing `address already in use` or `port is already allocated`
|
## I see an error message containing `address already in use` or `port is already allocated`
|
||||||
|
|
||||||
@ -1637,6 +1849,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## I get NGINX error 404 Not Found on Windows.
|
## I get NGINX error 404 Not Found on Windows.
|
||||||
|
|
||||||
@ -1649,6 +1862,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## The time in my services does not match the current time
|
## The time in my services does not match the current time
|
||||||
|
|
||||||
@ -1659,6 +1873,7 @@ Make sure the ports for the services that you are trying to run (22, 80, 443, 33
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
## I get MySQL connection refused
|
## I get MySQL connection refused
|
||||||
|
|
||||||
@ -1672,7 +1887,7 @@ This error sometimes happens because your Laravel application isn't running on t
|
|||||||
|
|
||||||
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
|
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
|
||||||
|
|
||||||
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem.
|
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-419652646), Already fixed,just set `CHANGE_SOURCE` to false.
|
||||||
|
|
||||||
## Custom composer repo packagist url and npm registry url
|
## Custom composer repo packagist url and npm registry url
|
||||||
|
|
||||||
@ -1683,3 +1898,30 @@ Example:
|
|||||||
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
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<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
|
||||||
|
```
|
||||||
|
|
||||||
|
@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
|
|||||||
cp env-example .env
|
cp env-example .env
|
||||||
```
|
```
|
||||||
|
|
||||||
At the top, change the `APPLICATION` variable to your project path.
|
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
|
||||||
|
|
||||||
```
|
```
|
||||||
APPLICATION=../project-z/
|
APP_CODE_PATH_HOST=../project-z/
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure to replace `project-z` with your project folder name.
|
Make sure to replace `project-z` with your project folder name.
|
||||||
@ -94,7 +94,7 @@ Make sure to replace `project-z` with your project folder name.
|
|||||||
|
|
||||||
<a name="B"></a>
|
<a name="B"></a>
|
||||||
### B) Setup for Multiple Projects:
|
### B) Setup for Multiple Projects:
|
||||||
> (Follow these steps if you want a single Docker environment for all your project)
|
> (Follow these steps if you want a single Docker environment for all your projects)
|
||||||
|
|
||||||
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
|
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
|
||||||
|
|
||||||
@ -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:
|
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)
|
- 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>
|
<br>
|
||||||
|
|
||||||
@ -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 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.
|
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 being 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 `;`.
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ This is needed Prior to Creating Let's Encypt
|
|||||||
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
||||||
|
|
||||||
```
|
```
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose up caddy
|
$root@server:~/laravel/laradock# docker-compose up caddy
|
||||||
```
|
```
|
||||||
|
|
||||||
You'll be prompt here to enter your email... you may enter it or not
|
You'll be prompt here to enter your email... you may enter it or not
|
||||||
@ -218,8 +218,8 @@ After it finishes, press `Ctrl` + `C` to exit.
|
|||||||
## Stop All Containers and ReRun Caddy and Other Containers on Background
|
## Stop All Containers and ReRun Caddy and Other Containers on Background
|
||||||
|
|
||||||
```
|
```
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose down
|
$root@server:~/laravel/laradock# docker-compose down
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
|
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
|
||||||
```
|
```
|
||||||
|
|
||||||
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||||
@ -418,7 +418,7 @@ laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222-
|
|||||||
<a name="enablePhpXdebug"></a>
|
<a name="enablePhpXdebug"></a>
|
||||||
## Enable xDebug on php-fpm
|
## Enable xDebug on php-fpm
|
||||||
|
|
||||||
In a host terminal sitting in the laradock folder, run: `.php-fpm/xdebug status`
|
In a host terminal sitting in the laradock folder, run: `./php-fpm/xdebug status`
|
||||||
You should see something like the following:
|
You should see something like the following:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -430,7 +430,7 @@ Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
|||||||
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
||||||
```
|
```
|
||||||
|
|
||||||
Other commands include `.php-fpm/xdebug start | stop`.
|
Other commands include `./php-fpm/xdebug start | stop`.
|
||||||
|
|
||||||
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
|
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
|
||||||
`php-fpm` is started and listening for debug info on port 9000.
|
`php-fpm` is started and listening for debug info on port 9000.
|
||||||
@ -516,9 +516,9 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will
|
|||||||
<a name="UsagePHPStormDebugSite"></a>
|
<a name="UsagePHPStormDebugSite"></a>
|
||||||
### Debug WebSite
|
### Debug WebSite
|
||||||
- In case xDebug is disabled, from the `laradock` folder run:
|
- In case xDebug is disabled, from the `laradock` folder run:
|
||||||
`.php-fpm/xdebug start`.
|
`./php-fpm/xdebug start`.
|
||||||
- To switch xdebug off, run:
|
- To switch xdebug off, run:
|
||||||
`.php-fpm/xdebug stop`
|
`./php-fpm/xdebug stop`
|
||||||
|
|
||||||
- Start Remote Debugging
|
- Start Remote Debugging
|
||||||
- 
|
- 
|
||||||
|
@ -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 - Portainer - Laravel Echo...
|
Mailu - HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Gitlab - Mailhog - MailDev - Minio - Varnish - Swoole - NetData - Portainer - Laravel Echo - Phalcon...
|
||||||
|
|
||||||
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.
|
||||||
|
@ -25,18 +25,21 @@
|
|||||||
<article class="article">
|
<article class="article">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
|
|
||||||
<!-- ------------------------------------------------------------------------- -->
|
<!-- Wrapper arround google ads for seedanddew -->
|
||||||
<!-- Google Ads -->
|
<div class='snd-ad'>
|
||||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
<!-- Laradock Horizontal -->
|
<!-- Google Ads -->
|
||||||
<ins class="adsbygoogle"
|
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||||
style="display:inline-block;width:890px;height:100px"
|
<!-- Laradock Horizontal -->
|
||||||
data-ad-client="ca-pub-9826129398689742"
|
<ins class="adsbygoogle"
|
||||||
data-ad-slot="2340256024"></ins>
|
style="display:inline-block;width:890px;height:100px"
|
||||||
<script>
|
data-ad-client="ca-pub-9826129398689742"
|
||||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
data-ad-slot="2340256024"></ins>
|
||||||
</script>
|
<script>
|
||||||
<!-- ------------------------------------------------------------------------- -->
|
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||||
|
</script>
|
||||||
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
|
</div>
|
||||||
|
|
||||||
{{ range where .Site.Pages "Type" "index" }}
|
{{ range where .Site.Pages "Type" "index" }}
|
||||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||||
|
@ -70,6 +70,27 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
|
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
// seedanddew.com integration
|
||||||
|
var SeedAndDewConfig = {};
|
||||||
|
(function() {
|
||||||
|
SeedAndDewConfig['adClass'] = "snd-ad";
|
||||||
|
/* * * DON'T EDIT BELOW THIS LINE * * */
|
||||||
|
SeedAndDewConfig['projectId'] = 'd69f3ea2-1e30-44c7-bd2a-87686c0136e6';
|
||||||
|
SeedAndDewConfig['loadStartTime'] = performance.now();
|
||||||
|
SeedAndDewConfig['apiVersion'] = '2018-05-28'
|
||||||
|
SeedAndDewConfig['sessionId'] = Math.random().toString(36).substring(2, 15);
|
||||||
|
var snd = document.createElement('script');
|
||||||
|
snd.type = 'text/javascript';
|
||||||
|
snd.async = true;
|
||||||
|
snd.src = 'https://www.seedanddew.com/static/embed.min.js';
|
||||||
|
(document.getElementsByTagName('head')[0] ||
|
||||||
|
document.getElementsByTagName('body')[0]).appendChild(snd);
|
||||||
|
})();
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
</script>
|
||||||
|
|
||||||
{{ with .RSSLink }}
|
{{ with .RSSLink }}
|
||||||
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||||
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||||
|
@ -1,17 +1,27 @@
|
|||||||
FROM zuohuadong/caddy:alpine
|
FROM golang:alpine
|
||||||
|
|
||||||
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
openssh \
|
||||||
|
git \
|
||||||
|
build-base && \
|
||||||
|
go get github.com/abiosoft/caddyplug/caddyplug \
|
||||||
|
&& caddyplug install-caddy \
|
||||||
|
apk del build-base
|
||||||
|
|
||||||
ARG plugins="cors"
|
ARG plugins="cors"
|
||||||
|
|
||||||
## ARG plugins="cors cgi cloudflare azure linode"
|
## ARG plugins="cors cgi cloudflare azure linode"
|
||||||
|
|
||||||
|
|
||||||
RUN caddyplug install ${plugins}
|
RUN caddyplug install ${plugins}
|
||||||
|
|
||||||
|
|
||||||
EXPOSE 80 443 2015
|
RUN apk add --no-cache inotify-tools \
|
||||||
|
&& echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \
|
||||||
|
&& chmod +x /start.sh
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
|
|
||||||
WORKDIR /var/www/public
|
WORKDIR /var/www/public
|
||||||
|
|
||||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
|
CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"]
|
||||||
|
@ -44,3 +44,8 @@ laradock2.demo:80 {
|
|||||||
#proxy domain.com
|
#proxy domain.com
|
||||||
#cors
|
#cors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
laradock3.demo:80 {
|
||||||
|
import authlist.conf
|
||||||
|
root /var/www/public
|
||||||
|
}
|
1
caddy/caddy/authlist.conf
Normal file
1
caddy/caddy/authlist.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
basicauth / laradock laradock
|
@ -47,10 +47,14 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ./workspace
|
context: ./workspace
|
||||||
args:
|
args:
|
||||||
- PHP_VERSION=${PHP_VERSION}
|
- LARADOCK_PHP_VERSION=${PHP_VERSION}
|
||||||
|
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
|
||||||
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
||||||
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
||||||
|
- INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
|
||||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||||
|
- INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2}
|
||||||
|
- INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
|
||||||
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
||||||
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
|
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
|
||||||
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
|
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
|
||||||
@ -85,7 +89,10 @@ services:
|
|||||||
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
|
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
|
||||||
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
|
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
|
||||||
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
|
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
|
||||||
|
- INSTALL_PHALCON=${WORKSPACE_INSTALL_PHALCON}
|
||||||
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
|
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
|
||||||
|
- INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG}
|
||||||
|
- INSTALL_IONCUBE=${WORKSPACE_INSTALL_IONCUBE}
|
||||||
- PUID=${WORKSPACE_PUID}
|
- PUID=${WORKSPACE_PUID}
|
||||||
- PGID=${WORKSPACE_PGID}
|
- PGID=${WORKSPACE_PGID}
|
||||||
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
||||||
@ -113,9 +120,12 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ./php-fpm
|
context: ./php-fpm
|
||||||
args:
|
args:
|
||||||
- PHP_VERSION=${PHP_VERSION}
|
- LARADOCK_PHP_VERSION=${PHP_VERSION}
|
||||||
|
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
|
||||||
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
||||||
|
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
|
||||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||||
|
- INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2}
|
||||||
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
||||||
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
||||||
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
|
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
|
||||||
@ -133,13 +143,16 @@ services:
|
|||||||
- 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}
|
||||||
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
|
|
||||||
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
|
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
|
||||||
- INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
|
- INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
|
||||||
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
|
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
|
||||||
|
- INSTALL_PHALCON=${PHP_FPM_INSTALL_PHALCON}
|
||||||
- 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}
|
||||||
|
- INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
|
||||||
|
- INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
|
||||||
|
- INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
|
||||||
volumes:
|
volumes:
|
||||||
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
||||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
@ -149,10 +162,14 @@ services:
|
|||||||
- "dockerhost:${DOCKER_HOST_IP}"
|
- "dockerhost:${DOCKER_HOST_IP}"
|
||||||
environment:
|
environment:
|
||||||
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
||||||
|
- DOCKER_HOST=tcp://docker-in-docker:2375
|
||||||
|
- FAKETIME=${PHP_FPM_FAKETIME}
|
||||||
depends_on:
|
depends_on:
|
||||||
- workspace
|
- workspace
|
||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
links:
|
||||||
|
- docker-in-docker
|
||||||
|
|
||||||
### PHP Worker ############################################
|
### PHP Worker ############################################
|
||||||
php-worker:
|
php-worker:
|
||||||
@ -161,6 +178,8 @@ services:
|
|||||||
args:
|
args:
|
||||||
- PHP_VERSION=${PHP_VERSION}
|
- PHP_VERSION=${PHP_VERSION}
|
||||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
||||||
|
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
|
||||||
|
- INSTALL_SOAP=${PHP_WORKER_INSTALL_SOAP}
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ./php-worker/supervisord.d:/etc/supervisord.d
|
- ./php-worker/supervisord.d:/etc/supervisord.d
|
||||||
@ -178,10 +197,12 @@ services:
|
|||||||
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}
|
||||||
|
- CHANGE_SOURCE=${CHANGE_SOURCE}
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
- ${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
|
||||||
|
- ${NGINX_SSL_PATH}:/etc/nginx/ssl
|
||||||
ports:
|
ports:
|
||||||
- "${NGINX_HOST_HTTP_PORT}:80"
|
- "${NGINX_HOST_HTTP_PORT}:80"
|
||||||
- "${NGINX_HOST_HTTPS_PORT}:443"
|
- "${NGINX_HOST_HTTPS_PORT}:443"
|
||||||
@ -460,7 +481,7 @@ services:
|
|||||||
build: ./caddy
|
build: ./caddy
|
||||||
volumes:
|
volumes:
|
||||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
|
- ${CADDY_CONFIG_PATH}:/etc/caddy
|
||||||
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
|
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
|
||||||
- ${DATA_PATH_HOST}:/root/.caddy
|
- ${DATA_PATH_HOST}:/root/.caddy
|
||||||
ports:
|
ports:
|
||||||
@ -515,7 +536,6 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
|
||||||
### ElasticSearch ########################################
|
### ElasticSearch ########################################
|
||||||
elasticsearch:
|
elasticsearch:
|
||||||
build: ./elasticsearch
|
build: ./elasticsearch
|
||||||
@ -538,7 +558,6 @@ services:
|
|||||||
- frontend
|
- frontend
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
|
||||||
### Kibana ##############################################
|
### Kibana ##############################################
|
||||||
kibana:
|
kibana:
|
||||||
build: ./kibana
|
build: ./kibana
|
||||||
@ -687,6 +706,7 @@ services:
|
|||||||
args:
|
args:
|
||||||
- SOLR_VERSION=${SOLR_VERSION}
|
- SOLR_VERSION=${SOLR_VERSION}
|
||||||
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
|
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
|
||||||
|
- SOLR_DATAIMPORTHANDLER_MSSQL=${SOLR_DATAIMPORTHANDLER_MSSQL}
|
||||||
volumes:
|
volumes:
|
||||||
- ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
|
- ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
|
||||||
ports:
|
ports:
|
||||||
@ -694,6 +714,122 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- backend
|
- backend
|
||||||
|
|
||||||
|
### Thumbor #########################################
|
||||||
|
thumbor:
|
||||||
|
build: ./thumbor
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/thumbor/data:/data
|
||||||
|
- ${DATA_PATH_HOST}/thumbor/data:/logs
|
||||||
|
ports:
|
||||||
|
- "${THUMBOR_PORT}:8000"
|
||||||
|
environment:
|
||||||
|
- THUMBOR_LOG_FORMAT=${THUMBOR_LOG_FORMAT}
|
||||||
|
- THUMBOR_LOG_DATE_FORMAT=${THUMBOR_LOG_DATE_FORMAT}
|
||||||
|
- MAX_WIDTH=${MAX_WIDTH}
|
||||||
|
- MAX_HEIGHT=${MAX_HEIGHT}
|
||||||
|
- MIN_WIDTH=${MIN_WIDTH}
|
||||||
|
- MIN_HEIGHT=${MIN_HEIGHT}
|
||||||
|
- ALLOWED_SOURCES=${ALLOWED_SOURCES}
|
||||||
|
- QUALITY=${QUALITY}
|
||||||
|
- WEBP_QUALITY=${WEBP_QUALITY}
|
||||||
|
- PNG_COMPRESSION_LEVEL=${PNG_COMPRESSION_LEVEL}
|
||||||
|
- AUTO_WEBP=${AUTO_WEBP}
|
||||||
|
- MAX_AGE=${MAX_AGE}
|
||||||
|
- MAX_AGE_TEMP_IMAGE=${MAX_AGE_TEMP_IMAGE}
|
||||||
|
- RESPECT_ORIENTATION=${RESPECT_ORIENTATION}
|
||||||
|
- IGNORE_SMART_ERRORS=${IGNORE_SMART_ERRORS}
|
||||||
|
- PRESERVE_EXIF_INFO=${PRESERVE_EXIF_INFO}
|
||||||
|
- ALLOW_ANIMATED_GIFS=${ALLOW_ANIMATED_GIFS}
|
||||||
|
- USE_GIFSICLE_ENGINE=${USE_GIFSICLE_ENGINE}
|
||||||
|
- USE_BLACKLIST=${USE_BLACKLIST}
|
||||||
|
- LOADER=${LOADER}
|
||||||
|
- STORAGE=${STORAGE}
|
||||||
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||||
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||||
|
- RESULT_STORAGE=${RESULT_STORAGE}
|
||||||
|
- ENGINE=${ENGINE}
|
||||||
|
- SECURITY_KEY=${SECURITY_KEY}
|
||||||
|
- ALLOW_UNSAFE_URL=${ALLOW_UNSAFE_URL}
|
||||||
|
- ALLOW_OLD_URLS=${ALLOW_OLD_URLS}
|
||||||
|
- FILE_LOADER_ROOT_PATH=${FILE_LOADER_ROOT_PATH}
|
||||||
|
- HTTP_LOADER_CONNECT_TIMEOUT=${HTTP_LOADER_CONNECT_TIMEOUT}
|
||||||
|
- HTTP_LOADER_REQUEST_TIMEOUT=${HTTP_LOADER_REQUEST_TIMEOUT}
|
||||||
|
- HTTP_LOADER_FOLLOW_REDIRECTS=${HTTP_LOADER_FOLLOW_REDIRECTS}
|
||||||
|
- HTTP_LOADER_MAX_REDIRECTS=${HTTP_LOADER_MAX_REDIRECTS}
|
||||||
|
- HTTP_LOADER_FORWARD_USER_AGENT=${HTTP_LOADER_FORWARD_USER_AGENT}
|
||||||
|
- HTTP_LOADER_DEFAULT_USER_AGENT=${HTTP_LOADER_DEFAULT_USER_AGENT}
|
||||||
|
- HTTP_LOADER_PROXY_HOST=${HTTP_LOADER_PROXY_HOST}
|
||||||
|
- HTTP_LOADER_PROXY_PORT=${HTTP_LOADER_PROXY_PORT}
|
||||||
|
- HTTP_LOADER_PROXY_USERNAME=${HTTP_LOADER_PROXY_USERNAME}
|
||||||
|
- HTTP_LOADER_PROXY_PASSWORD=${HTTP_LOADER_PROXY_PASSWORD}
|
||||||
|
- HTTP_LOADER_CA_CERTS=${HTTP_LOADER_CA_CERTS}
|
||||||
|
- HTTP_LOADER_VALIDATE_CERTS=${HTTP_LOADER_VALIDATE_CERTS}
|
||||||
|
- HTTP_LOADER_CLIENT_KEY=${HTTP_LOADER_CLIENT_KEY}
|
||||||
|
- HTTP_LOADER_CLIENT_CERT=${HTTP_LOADER_CLIENT_CERT}
|
||||||
|
- HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT=${HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT}
|
||||||
|
- STORAGE_EXPIRATION_SECONDS=${STORAGE_EXPIRATION_SECONDS}
|
||||||
|
- STORES_CRYPTO_KEY_FOR_EACH_IMAGE=${STORES_CRYPTO_KEY_FOR_EACH_IMAGE}
|
||||||
|
- FILE_STORAGE_ROOT_PATH=${FILE_STORAGE_ROOT_PATH}
|
||||||
|
- UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE}
|
||||||
|
- UPLOAD_ENABLED=${UPLOAD_ENABLED}
|
||||||
|
- UPLOAD_PHOTO_STORAGE=${UPLOAD_PHOTO_STORAGE}
|
||||||
|
- UPLOAD_DELETE_ALLOWED=${UPLOAD_DELETE_ALLOWED}
|
||||||
|
- UPLOAD_PUT_ALLOWED=${UPLOAD_PUT_ALLOWED}
|
||||||
|
- UPLOAD_DEFAULT_FILENAME=${UPLOAD_DEFAULT_FILENAME}
|
||||||
|
- MONGO_STORAGE_SERVER_HOST=${MONGO_STORAGE_SERVER_HOST}
|
||||||
|
- MONGO_STORAGE_SERVER_PORT=${MONGO_STORAGE_SERVER_PORT}
|
||||||
|
- MONGO_STORAGE_SERVER_DB=${MONGO_STORAGE_SERVER_DB}
|
||||||
|
- MONGO_STORAGE_SERVER_COLLECTION=${MONGO_STORAGE_SERVER_COLLECTION}
|
||||||
|
- REDIS_STORAGE_SERVER_HOST=${REDIS_STORAGE_SERVER_HOST}
|
||||||
|
- REDIS_STORAGE_SERVER_PORT=${REDIS_STORAGE_SERVER_PORT}
|
||||||
|
- REDIS_STORAGE_SERVER_DB=${REDIS_STORAGE_SERVER_DB}
|
||||||
|
- REDIS_STORAGE_SERVER_PASSWORD=${REDIS_STORAGE_SERVER_PASSWORD}
|
||||||
|
- REDIS_RESULT_STORAGE_SERVER_HOST=${REDIS_RESULT_STORAGE_SERVER_HOST}
|
||||||
|
- REDIS_RESULT_STORAGE_SERVER_PORT=${REDIS_RESULT_STORAGE_SERVER_PORT}
|
||||||
|
- REDIS_RESULT_STORAGE_SERVER_DB=${REDIS_RESULT_STORAGE_SERVER_DB}
|
||||||
|
- REDIS_RESULT_STORAGE_SERVER_PASSWORD=${REDIS_RESULT_STORAGE_SERVER_PASSWORD}
|
||||||
|
- MEMCACHE_STORAGE_SERVERS=${MEMCACHE_STORAGE_SERVERS}
|
||||||
|
- MIXED_STORAGE_FILE_STORAGE=${MIXED_STORAGE_FILE_STORAGE}
|
||||||
|
- MIXED_STORAGE_CRYPTO_STORAGE=${MIXED_STORAGE_CRYPTO_STORAGE}
|
||||||
|
- MIXED_STORAGE_DETECTOR_STORAGE=${MIXED_STORAGE_DETECTOR_STORAGE}
|
||||||
|
- META_CALLBACK_NAME=${META_CALLBACK_NAME}
|
||||||
|
- DETECTORS=${DETECTORS}
|
||||||
|
- FACE_DETECTOR_CASCADE_FILE=${FACE_DETECTOR_CASCADE_FILE}
|
||||||
|
- OPTIMIZERS=${OPTIMIZERS}
|
||||||
|
- JPEGTRAN_PATH=${JPEGTRAN_PATH}
|
||||||
|
- PROGRESSIVE_JPEG=${PROGRESSIVE_JPEG}
|
||||||
|
- RESULT_STORAGE_EXPIRATION_SECONDS=${RESULT_STORAGE_EXPIRATION_SECONDS}
|
||||||
|
- RESULT_STORAGE_FILE_STORAGE_ROOT_PATH=${RESULT_STORAGE_FILE_STORAGE_ROOT_PATH}
|
||||||
|
- RESULT_STORAGE_STORES_UNSAFE=${RESULT_STORAGE_STORES_UNSAFE}
|
||||||
|
- REDIS_QUEUE_SERVER_HOST=${REDIS_QUEUE_SERVER_HOST}
|
||||||
|
- REDIS_QUEUE_SERVER_PORT=${REDIS_QUEUE_SERVER_PORT}
|
||||||
|
- REDIS_QUEUE_SERVER_DB=${REDIS_QUEUE_SERVER_DB}
|
||||||
|
- REDIS_QUEUE_SERVER_PASSWORD=${REDIS_QUEUE_SERVER_PASSWORD}
|
||||||
|
- SQS_QUEUE_KEY_ID=${SQS_QUEUE_KEY_ID}
|
||||||
|
- SQS_QUEUE_KEY_SECRET=${SQS_QUEUE_KEY_SECRET}
|
||||||
|
- SQS_QUEUE_REGION=${SQS_QUEUE_REGION}
|
||||||
|
- USE_CUSTOM_ERROR_HANDLING=${USE_CUSTOM_ERROR_HANDLING}
|
||||||
|
- ERROR_HANDLER_MODULE=${ERROR_HANDLER_MODULE}
|
||||||
|
- ERROR_FILE_LOGGER=${ERROR_FILE_LOGGER}
|
||||||
|
- ERROR_FILE_NAME_USE_CONTEXT=${ERROR_FILE_NAME_USE_CONTEXT}
|
||||||
|
- SENTRY_DSN_URL=${SENTRY_DSN_URL}
|
||||||
|
- TC_AWS_REGION=${TC_AWS_REGION}
|
||||||
|
- TC_AWS_ENDPOINT=${TC_AWS_ENDPOINT}
|
||||||
|
- TC_AWS_STORAGE_BUCKET=${TC_AWS_STORAGE_BUCKET}
|
||||||
|
- TC_AWS_STORAGE_ROOT_PATH=${TC_AWS_STORAGE_ROOT_PATH}
|
||||||
|
- TC_AWS_LOADER_BUCKET=${TC_AWS_LOADER_BUCKET}
|
||||||
|
- TC_AWS_LOADER_ROOT_PATH=${TC_AWS_LOADER_ROOT_PATH}
|
||||||
|
- TC_AWS_RESULT_STORAGE_BUCKET=${TC_AWS_RESULT_STORAGE_BUCKET}
|
||||||
|
- TC_AWS_RESULT_STORAGE_ROOT_PATH=${TC_AWS_RESULT_STORAGE_ROOT_PATH}
|
||||||
|
- TC_AWS_STORAGE_SSE=${TC_AWS_STORAGE_SSE}
|
||||||
|
- TC_AWS_STORAGE_RRS=${TC_AWS_STORAGE_RRS}
|
||||||
|
- TC_AWS_ENABLE_HTTP_LOADER=${TC_AWS_ENABLE_HTTP_LOADER}
|
||||||
|
- TC_AWS_ALLOWED_BUCKETS=${TC_AWS_ALLOWED_BUCKETS}
|
||||||
|
- TC_AWS_STORE_METADATA=${TC_AWS_STORE_METADATA}
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
|
||||||
### AWS EB-CLI ################################################
|
### AWS EB-CLI ################################################
|
||||||
aws:
|
aws:
|
||||||
build:
|
build:
|
||||||
@ -711,6 +847,424 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- ${DATA_PATH_HOST}/portainer_data:/data
|
- ${DATA_PATH_HOST}/portainer_data:/data
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
extra_hosts:
|
||||||
|
- "dockerhost:${DOCKER_HOST_IP}"
|
||||||
ports:
|
ports:
|
||||||
- 9010:9000
|
- 9010:9000
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### Gitlab ################################################
|
||||||
|
gitlab:
|
||||||
|
build:
|
||||||
|
context: ./gitlab
|
||||||
|
environment:
|
||||||
|
GITLAB_OMNIBUS_CONFIG: |
|
||||||
|
external_url '${GITLAB_DOMAIN_NAME}'
|
||||||
|
redis['enable'] = false
|
||||||
|
nginx['listen_https'] = false
|
||||||
|
nginx['listen_port'] = 80
|
||||||
|
postgresql['enable'] = false
|
||||||
|
gitlab_rails['trusted_proxies'] = ['caddy','nginx','apache2']
|
||||||
|
gitlab_rails['redis_host'] = 'redis'
|
||||||
|
gitlab_rails['redis_database'] = 8
|
||||||
|
gitlab_rails['db_host'] = 'postgres'
|
||||||
|
gitlab_rails['db_username'] = 'laradock_gitlab'
|
||||||
|
gitlab_rails['db_password'] = 'laradock_gitlab'
|
||||||
|
gitlab_rails['db_database'] = 'laradock_gitlab'
|
||||||
|
gitlab_rails['initial_root_password'] = '${GITLAB_ROOT_PASSWORD}'
|
||||||
|
gitlab_rails['gitlab_shell_ssh_port'] = ${GITLAB_HOST_SSH_PORT}
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/gitlab/config:/etc/gitlab
|
||||||
|
- ${DATA_PATH_HOST}/gitlab/data:/var/opt/gitlab
|
||||||
|
- ${GITLAB_HOST_LOG_PATH}:/var/log/gitlab
|
||||||
|
ports:
|
||||||
|
- "${GITLAB_HOST_HTTP_PORT}:80"
|
||||||
|
- "${GITLAB_HOST_HTTPS_PORT}:443"
|
||||||
|
- "${GITLAB_HOST_SSH_PORT}:22"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
- postgres
|
||||||
|
gitlab-runner:
|
||||||
|
image: gitlab/gitlab-runner:latest
|
||||||
|
environment:
|
||||||
|
- CI_SERVER_URL=${GITLAB_DOMAIN_NAME}
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:rw
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
### JupyterHub #########################################
|
||||||
|
jupyterhub:
|
||||||
|
build:
|
||||||
|
context: ./jupyterhub
|
||||||
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
- jupyterhub-user
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:rw
|
||||||
|
- ${DATA_PATH_HOST}/jupyterhub/:/data
|
||||||
|
- ${JUPYTERHUB_CUSTOM_CONFIG}:/jupyterhub_config.py
|
||||||
|
- ${JUPYTERHUB_USER_DATA}:/user-data
|
||||||
|
- ${JUPYTERHUB_USER_LIST}:/userlist
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
ports:
|
||||||
|
- "${JUPYTERHUB_PORT}:80"
|
||||||
|
environment:
|
||||||
|
- TERM=xterm
|
||||||
|
- JUPYTERHUB_USER_DATA=${JUPYTERHUB_USER_DATA}
|
||||||
|
- JUPYTERHUB_POSTGRES_DB=${JUPYTERHUB_POSTGRES_DB}
|
||||||
|
- JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
|
||||||
|
- JUPYTERHUB_POSTGRES_HOST=${JUPYTERHUB_POSTGRES_HOST}
|
||||||
|
- JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
|
||||||
|
- JUPYTERHUB_OAUTH_CALLBACK_URL=${JUPYTERHUB_OAUTH_CALLBACK_URL}
|
||||||
|
- JUPYTERHUB_OAUTH_CLIENT_ID=${JUPYTERHUB_OAUTH_CLIENT_ID}
|
||||||
|
- JUPYTERHUB_OAUTH_CLIENT_SECRET=${JUPYTERHUB_OAUTH_CLIENT_SECRET}
|
||||||
|
- JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
|
||||||
|
jupyterhub-user:
|
||||||
|
build:
|
||||||
|
context: ./jupyterhub
|
||||||
|
dockerfile: Dockerfile.user
|
||||||
|
command: ["sh", "-c", "echo \"build only\""]
|
||||||
|
|
||||||
|
### IPython #########################################
|
||||||
|
ipython-controller:
|
||||||
|
build:
|
||||||
|
context: ./ipython
|
||||||
|
dockerfile: Dockerfile.controller
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
extra_hosts:
|
||||||
|
- "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
|
||||||
|
ports:
|
||||||
|
- "33327-33338:33327-33338"
|
||||||
|
ipython-engine:
|
||||||
|
build:
|
||||||
|
context: ./ipython
|
||||||
|
dockerfile: Dockerfile.engine
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
extra_hosts:
|
||||||
|
- "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
|
### PHPRedisAdmin ################################################
|
||||||
|
phpredisadmin:
|
||||||
|
image: erikdubbelboer/phpredisadmin:latest
|
||||||
|
environment:
|
||||||
|
- ADMIN_USER=${REDIS_WEBUI_USERNAME}
|
||||||
|
- ADMIN_PASS=${REDIS_WEBUI_PASSWORD}
|
||||||
|
- REDIS_1_HOST=${REDIS_WEBUI_CONNECT_HOST}
|
||||||
|
- REDIS_1_PORT=${REDIS_WEBUI_CONNECT_PORT}
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
ports:
|
||||||
|
- "${REDIS_WEBUI_PORT}:80"
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
|
||||||
|
### MongoWebUI ################################################
|
||||||
|
mongo-webui:
|
||||||
|
build:
|
||||||
|
context: ./mongo-webui
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- ROOT_URL=${MONGO_WEBUI_ROOT_URL}
|
||||||
|
- MONGO_URL=${MONGO_WEBUI_MONGO_URL}
|
||||||
|
- INSTALL_MONGO=${MONGO_WEBUI_INSTALL_MONGO}
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/mongo-webui:/data/db
|
||||||
|
ports:
|
||||||
|
- "${MONGO_WEBUI_PORT}:3000"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
depends_on:
|
||||||
|
- mongo
|
||||||
|
|
||||||
|
### Metabase #################################################
|
||||||
|
metabase:
|
||||||
|
image: metabase/metabase:latest
|
||||||
|
environment:
|
||||||
|
- MB_DB_FILE=/metabase-data/${METABASE_DB_FILE}
|
||||||
|
ports:
|
||||||
|
- ${METABASE_PORT}:3000
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/metabase-data:/metabase-data
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### IDE-THEIA ################################################
|
||||||
|
ide-theia:
|
||||||
|
build:
|
||||||
|
context: ./ide-theia
|
||||||
|
volumes:
|
||||||
|
- ${APP_CODE_PATH_HOST}:/home/project
|
||||||
|
ports:
|
||||||
|
- "${IDE_THEIA_PORT}:3000"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### IDE-WEBIDE ################################################
|
||||||
|
ide-webide:
|
||||||
|
build:
|
||||||
|
context: ./ide-webide
|
||||||
|
volumes:
|
||||||
|
- ${DATA_PATH_HOST}/ide/webide/ide.db:/root/.coding-ide/ide.db
|
||||||
|
ports:
|
||||||
|
- "${IDE_WEBIDE_PORT}:8080"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### IDE-CODIAD ################################################
|
||||||
|
ide-codiad:
|
||||||
|
build:
|
||||||
|
context: ./ide-codiad
|
||||||
|
environment:
|
||||||
|
- APP_CODE_PATH_CONTAINER=${APP_CODE_PATH_CONTAINER}
|
||||||
|
- TZ=${WORKSPACE_TIMEZONE}
|
||||||
|
- PGID=1000
|
||||||
|
- PUID=1000
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||||
|
- ${DATA_PATH_HOST}/ide/codiad:/config
|
||||||
|
ports:
|
||||||
|
- "${IDE_CODIAD_PORT}:80"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### IDE-ICECODER ################################################
|
||||||
|
ide-icecoder:
|
||||||
|
build:
|
||||||
|
context: ./ide-icecoder
|
||||||
|
environment:
|
||||||
|
- DOCUMENT_ROOT=${APP_CODE_PATH_CONTAINER}
|
||||||
|
- TZ=${WORKSPACE_TIMEZONE}
|
||||||
|
- PGID=1000
|
||||||
|
- PUID=1000
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- ${APP_CODE_PATH_HOST}:/home/laradock/ICEcoder/dev
|
||||||
|
ports:
|
||||||
|
- "${IDE_ICECODER_PORT}:8080"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### DOCKER-REGISTRY ################################################
|
||||||
|
docker-registry:
|
||||||
|
build:
|
||||||
|
context: ./docker-registry
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- ${DATA_PATH_HOST}/docker-registry:/var/lib/registry
|
||||||
|
ports:
|
||||||
|
- "${DOCKER_REGISTRY_PORT}:5000"
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### DOCKER-WEB-UI ################################################
|
||||||
|
docker-web-ui:
|
||||||
|
build:
|
||||||
|
context: ./docker-web-ui
|
||||||
|
environment:
|
||||||
|
- TZ=${WORKSPACE_TIMEZONE}
|
||||||
|
- ENV_DOCKER_REGISTRY_HOST=${DOCKER_WEBUI_REGISTRY_HOST}
|
||||||
|
- ENV_DOCKER_REGISTRY_PORT=${DOCKER_WEBUI_REGISTRY_PORT}
|
||||||
|
- ENV_DOCKER_REGISTRY_USE_SSL=${DOCKER_REGISTRY_USE_SSL}
|
||||||
|
- ENV_MODE_BROWSE_ONLY=${DOCKER_REGISTRY_BROWSE_ONLY}
|
||||||
|
volumes:
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
ports:
|
||||||
|
- "${DOCKER_WEBUI_PORT}:80"
|
||||||
|
networks:
|
||||||
|
- frontend
|
||||||
|
- backend
|
||||||
|
|
||||||
|
### MAILU ################################################
|
||||||
|
mailu:
|
||||||
|
image: mailu/admin:${MAILU_VERSION}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/data:/data"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/webmail:/webmail"
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
depends_on:
|
||||||
|
- mailu-front
|
||||||
|
- mailu-imap
|
||||||
|
- mailu-smtp
|
||||||
|
- mailu-antispam
|
||||||
|
- mailu-antivirus
|
||||||
|
- mailu-webdav
|
||||||
|
- mailu-admin
|
||||||
|
- mailu-webmail
|
||||||
|
- mailu-fetchmail
|
||||||
|
command: ["sh", "-c", "echo ${MAILU_INIT_ADMIN_USERNAME}@${MAILU_DOMAIN} ${MAILU_INIT_ADMIN_PASSWORD} ;python manage.py advertise ; python manage.py db upgrade ; python manage.py admin ${MAILU_INIT_ADMIN_USERNAME} ${MAILU_DOMAIN} ${MAILU_INIT_ADMIN_PASSWORD} || true;sed -i -- \"s/= Off/= On/g\" /webmail/_data_/_default_/configs/config.ini || true;if grep -Fq \"registration_link_url\" /webmail/_data_/_default_/configs/config.ini;then echo Already set!;else echo \"\" >> /webmail/_data_/_default_/configs/config.ini; echo \"[login]\" >> /webmail/_data_/_default_/configs/config.ini;echo \"registration_link_url = '${MAILU_WEBSITE}${MAILU_WEB_ADMIN}/ui/user/signup'\" >> /webmail/_data_/_default_/configs/config.ini;fi"]
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
mailu-front:
|
||||||
|
image: mailu/nginx:${MAILU_VERSION}
|
||||||
|
environment:
|
||||||
|
- ADMIN=${MAILU_ADMIN}
|
||||||
|
- WEB_ADMIN=${MAILU_WEB_ADMIN}
|
||||||
|
- WEB_WEBMAIL=${MAILU_WEB_WEBMAIL}
|
||||||
|
- WEBDAV=${MAILU_WEBDAV}
|
||||||
|
- HOSTNAMES=${MAILU_HOSTNAMES}
|
||||||
|
- TLS_FLAVOR=${MAILU_TLS_FLAVOR}
|
||||||
|
- MESSAGE_SIZE_LIMIT=${MAILU_MESSAGE_SIZE_LIMIT}
|
||||||
|
ports:
|
||||||
|
- "${MAILU_HTTP_PORT}:80"
|
||||||
|
- "${MAILU_HTTPS_PORT}:443"
|
||||||
|
- "110:110"
|
||||||
|
- "143:143"
|
||||||
|
- "993:993"
|
||||||
|
- "995:995"
|
||||||
|
- "25:25"
|
||||||
|
- "465:465"
|
||||||
|
- "587:587"
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/certs:/certs"
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- front
|
||||||
|
mailu-imap:
|
||||||
|
image: mailu/dovecot:${MAILU_VERSION}
|
||||||
|
environment:
|
||||||
|
- DOMAIN=${MAILU_DOMAIN}
|
||||||
|
- HOSTNAMES=${MAILU_HOSTNAMES}
|
||||||
|
- POSTMASTER=${MAILU_POSTMASTER}
|
||||||
|
- WEBMAIL=${MAILU_WEBMAIL}
|
||||||
|
- RECIPIENT_DELIMITER=${MAILU_RECIPIENT_DELIMITER}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/data:/data"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/mail:/mail"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/overrides:/overrides"
|
||||||
|
depends_on:
|
||||||
|
- mailu-front
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- imap
|
||||||
|
mailu-smtp:
|
||||||
|
image: mailu/postfix:${MAILU_VERSION}
|
||||||
|
environment:
|
||||||
|
- DOMAIN=${MAILU_DOMAIN}
|
||||||
|
- HOSTNAMES=${MAILU_HOSTNAMES}
|
||||||
|
- RELAYHOST=${MAILU_RELAYHOST}
|
||||||
|
- RELAYNETS=${MAILU_RELAYNETS}
|
||||||
|
- RECIPIENT_DELIMITER=${MAILU_RECIPIENT_DELIMITER}
|
||||||
|
- MESSAGE_SIZE_LIMIT=${MAILU_MESSAGE_SIZE_LIMIT}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/data:/data"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/overrides:/overrides"
|
||||||
|
depends_on:
|
||||||
|
- mailu-front
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- smtp
|
||||||
|
mailu-antispam:
|
||||||
|
image: mailu/rspamd:${MAILU_VERSION}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/filter:/var/lib/rspamd"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/overrides/rspamd:/etc/rspamd/override.d"
|
||||||
|
depends_on:
|
||||||
|
- mailu-front
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- antispam
|
||||||
|
mailu-antivirus:
|
||||||
|
image: mailu/clamav:${MAILU_VERSION}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/filter:/data"
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- antivirus
|
||||||
|
mailu-webdav:
|
||||||
|
image: mailu/${MAILU_WEBDAV}:${MAILU_VERSION}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/dav:/data"
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- webdav
|
||||||
|
mailu-admin:
|
||||||
|
image: mailu/admin:${MAILU_VERSION}
|
||||||
|
environment:
|
||||||
|
- DOMAIN=${MAILU_DOMAIN}
|
||||||
|
- HOSTNAMES=${MAILU_HOSTNAMES}
|
||||||
|
- POSTMASTER=${MAILU_POSTMASTER}
|
||||||
|
- SECRET_KEY=${MAILU_SECRET_KEY}
|
||||||
|
- AUTH_RATELIMIT=${MAILU_AUTH_RATELIMIT}
|
||||||
|
- TLS_FLAVOR=${MAILU_TLS_FLAVOR}
|
||||||
|
- DISABLE_STATISTICS=${MAILU_DISABLE_STATISTICS}
|
||||||
|
- DMARC_RUA=${MAILU_DMARC_RUA}
|
||||||
|
- DMARC_RUF=${MAILU_DMARC_RUF}
|
||||||
|
- WELCOME=${MAILU_WELCOME}
|
||||||
|
- WELCOME_SUBJECT=${MAILU_WELCOME_SUBJECT}
|
||||||
|
- WELCOME_BODY=${MAILU_WELCOME_BODY}
|
||||||
|
- WEB_ADMIN=${MAILU_WEB_ADMIN}
|
||||||
|
- WEB_WEBMAIL=${MAILU_WEB_WEBMAIL}
|
||||||
|
- WEBSITE=${MAILU_WEBSITE}
|
||||||
|
- WEBMAIL=${MAILU_WEBMAIL}
|
||||||
|
- SITENAME=${MAILU_SITENAME}
|
||||||
|
- PASSWORD_SCHEME=${MAILU_PASSWORD_SCHEME}
|
||||||
|
- RECAPTCHA_PUBLIC_KEY=${MAILU_RECAPTCHA_PUBLIC_KEY}
|
||||||
|
- RECAPTCHA_PRIVATE_KEY=${MAILU_RECAPTCHA_PRIVATE_KEY}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/data:/data"
|
||||||
|
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- admin
|
||||||
|
mailu-webmail:
|
||||||
|
image: "mailu/${MAILU_WEBMAIL}:${MAILU_VERSION}"
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/webmail:/data"
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- webmail
|
||||||
|
mailu-fetchmail:
|
||||||
|
image: mailu/fetchmail:${MAILU_VERSION}
|
||||||
|
environment:
|
||||||
|
- FETCHMAIL_DELAY=${MAILU_FETCHMAIL_DELAY}
|
||||||
|
volumes:
|
||||||
|
- "${DATA_PATH_HOST}/mailu/data:/data"
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
aliases:
|
||||||
|
- fetchmail
|
||||||
|
3
docker-registry/Dockerfile
Normal file
3
docker-registry/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM registry:2
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
3
docker-web-ui/Dockerfile
Normal file
3
docker-web-ui/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM konradkleine/docker-registry-frontend:v2
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
263
env-example
263
env-example
@ -37,6 +37,11 @@ COMPOSE_PROJECT_NAME=laradock
|
|||||||
# 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
|
# 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_VERSION=7.2
|
||||||
|
|
||||||
|
### Phalcon Version ###########################################
|
||||||
|
|
||||||
|
# Select a Phalcon version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 3.4.0+
|
||||||
|
PHALCON_VERSION=3.4.1
|
||||||
|
|
||||||
### PHP Interpreter #######################################
|
### PHP Interpreter #######################################
|
||||||
|
|
||||||
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
||||||
@ -76,18 +81,21 @@ DOCKER_SYNC_STRATEGY=native_osx
|
|||||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
||||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
||||||
WORKSPACE_INSTALL_NODE=true
|
WORKSPACE_INSTALL_NODE=true
|
||||||
WORKSPACE_NODE_VERSION=stable
|
WORKSPACE_NODE_VERSION=node
|
||||||
WORKSPACE_NPM_REGISTRY=
|
WORKSPACE_NPM_REGISTRY=
|
||||||
WORKSPACE_INSTALL_YARN=true
|
WORKSPACE_INSTALL_YARN=true
|
||||||
WORKSPACE_YARN_VERSION=latest
|
WORKSPACE_YARN_VERSION=latest
|
||||||
WORKSPACE_INSTALL_NPM_GULP=true
|
WORKSPACE_INSTALL_NPM_GULP=true
|
||||||
WORKSPACE_INSTALL_NPM_BOWER=true
|
WORKSPACE_INSTALL_NPM_BOWER=false
|
||||||
WORKSPACE_INSTALL_NPM_VUE_CLI=true
|
WORKSPACE_INSTALL_NPM_VUE_CLI=true
|
||||||
WORKSPACE_INSTALL_PHPREDIS=true
|
WORKSPACE_INSTALL_PHPREDIS=true
|
||||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||||
WORKSPACE_INSTALL_SUBVERSION=false
|
WORKSPACE_INSTALL_SUBVERSION=false
|
||||||
WORKSPACE_INSTALL_XDEBUG=false
|
WORKSPACE_INSTALL_XDEBUG=false
|
||||||
|
WORKSPACE_INSTALL_PHPDBG=false
|
||||||
|
WORKSPACE_INSTALL_SSH2=false
|
||||||
WORKSPACE_INSTALL_LDAP=false
|
WORKSPACE_INSTALL_LDAP=false
|
||||||
|
WORKSPACE_INSTALL_GMP=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
|
||||||
@ -111,7 +119,10 @@ WORKSPACE_INSTALL_IMAGEMAGICK=false
|
|||||||
WORKSPACE_INSTALL_TERRAFORM=false
|
WORKSPACE_INSTALL_TERRAFORM=false
|
||||||
WORKSPACE_INSTALL_DUSK_DEPS=false
|
WORKSPACE_INSTALL_DUSK_DEPS=false
|
||||||
WORKSPACE_INSTALL_PG_CLIENT=false
|
WORKSPACE_INSTALL_PG_CLIENT=false
|
||||||
|
WORKSPACE_INSTALL_PHALCON=false
|
||||||
WORKSPACE_INSTALL_SWOOLE=false
|
WORKSPACE_INSTALL_SWOOLE=false
|
||||||
|
WORKSPACE_INSTALL_LIBPNG=false
|
||||||
|
WORKSPACE_INSTALL_IONCUBE=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
|
||||||
@ -123,7 +134,6 @@ WORKSPACE_SSH_PORT=2222
|
|||||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
||||||
PHP_FPM_INSTALL_BCMATH=true
|
PHP_FPM_INSTALL_BCMATH=true
|
||||||
PHP_FPM_INSTALL_MYSQLI=true
|
PHP_FPM_INSTALL_MYSQLI=true
|
||||||
PHP_FPM_INSTALL_TOKENIZER=true
|
|
||||||
PHP_FPM_INSTALL_INTL=true
|
PHP_FPM_INSTALL_INTL=true
|
||||||
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
||||||
PHP_FPM_INSTALL_OPCACHE=true
|
PHP_FPM_INSTALL_OPCACHE=true
|
||||||
@ -131,10 +141,12 @@ PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
|||||||
PHP_FPM_INSTALL_PHPREDIS=true
|
PHP_FPM_INSTALL_PHPREDIS=true
|
||||||
PHP_FPM_INSTALL_MEMCACHED=false
|
PHP_FPM_INSTALL_MEMCACHED=false
|
||||||
PHP_FPM_INSTALL_XDEBUG=false
|
PHP_FPM_INSTALL_XDEBUG=false
|
||||||
|
PHP_FPM_INSTALL_PHPDBG=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_SSH2=false
|
||||||
PHP_FPM_INSTALL_SOAP=false
|
PHP_FPM_INSTALL_SOAP=false
|
||||||
PHP_FPM_INSTALL_GMP=false
|
PHP_FPM_INSTALL_GMP=false
|
||||||
PHP_FPM_INSTALL_EXIF=false
|
PHP_FPM_INSTALL_EXIF=false
|
||||||
@ -142,13 +154,20 @@ PHP_FPM_INSTALL_AEROSPIKE=false
|
|||||||
PHP_FPM_INSTALL_PGSQL=false
|
PHP_FPM_INSTALL_PGSQL=false
|
||||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||||
PHP_FPM_INSTALL_LDAP=false
|
PHP_FPM_INSTALL_LDAP=false
|
||||||
|
PHP_FPM_INSTALL_PHALCON=false
|
||||||
PHP_FPM_INSTALL_SWOOLE=false
|
PHP_FPM_INSTALL_SWOOLE=false
|
||||||
PHP_FPM_INSTALL_PG_CLIENT=false
|
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||||
PHP_FPM_INSTALL_PCNTL=false
|
PHP_FPM_INSTALL_PCNTL=false
|
||||||
|
PHP_FPM_INSTALL_CALENDAR=false
|
||||||
|
PHP_FPM_INSTALL_FAKETIME=false
|
||||||
|
PHP_FPM_INSTALL_IONCUBE=false
|
||||||
|
PHP_FPM_FAKETIME=-0
|
||||||
|
|
||||||
### PHP_WORKER ############################################
|
### PHP_WORKER ############################################
|
||||||
|
|
||||||
PHP_WORKER_INSTALL_PGSQL=false
|
PHP_WORKER_INSTALL_PGSQL=false
|
||||||
|
PHP_WORKER_INSTALL_BCMATH=false
|
||||||
|
PHP_WORKER_INSTALL_SOAP=false
|
||||||
|
|
||||||
### NGINX #################################################
|
### NGINX #################################################
|
||||||
|
|
||||||
@ -158,6 +177,7 @@ NGINX_HOST_LOG_PATH=./logs/nginx/
|
|||||||
NGINX_SITES_PATH=./nginx/sites/
|
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
|
||||||
|
NGINX_SSL_PATH=./nginx/ssl/
|
||||||
|
|
||||||
### APACHE ################################################
|
### APACHE ################################################
|
||||||
|
|
||||||
@ -331,6 +351,8 @@ AEROSPIKE_INFO_PORT=3003
|
|||||||
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
|
# 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"
|
# 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
|
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
|
||||||
|
# for php 5.6
|
||||||
|
# AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz
|
||||||
|
|
||||||
### RETHINKDB #############################################
|
### RETHINKDB #############################################
|
||||||
|
|
||||||
@ -345,14 +367,247 @@ MONGODB_PORT=27017
|
|||||||
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_CONFIG_PATH=./caddy/caddy
|
||||||
|
|
||||||
### LARAVEL ECHO SERVER ###################################
|
### LARAVEL ECHO SERVER ###################################
|
||||||
|
|
||||||
LARAVEL_ECHO_SERVER_PORT=6001
|
LARAVEL_ECHO_SERVER_PORT=6001
|
||||||
|
|
||||||
|
### THUMBOR ############################################################################################################
|
||||||
|
|
||||||
|
THUMBOR_PORT=8000
|
||||||
|
THUMBOR_LOG_FORMAT="%(asctime)s %(name)s:%(levelname)s %(message)s"
|
||||||
|
THUMBOR_LOG_DATE_FORMAT="%Y-%m-%d %H:%M:%S"
|
||||||
|
MAX_WIDTH=0
|
||||||
|
MAX_HEIGHT=0
|
||||||
|
MIN_WIDTH=1
|
||||||
|
MIN_HEIGHT=1
|
||||||
|
ALLOWED_SOURCES=[]
|
||||||
|
QUALITY=80
|
||||||
|
WEBP_QUALITY=None
|
||||||
|
PNG_COMPRESSION_LEVEL=6
|
||||||
|
AUTO_WEBP=False
|
||||||
|
MAX_AGE=86400
|
||||||
|
MAX_AGE_TEMP_IMAGE=0
|
||||||
|
RESPECT_ORIENTATION=False
|
||||||
|
IGNORE_SMART_ERRORS=False
|
||||||
|
PRESERVE_EXIF_INFO=False
|
||||||
|
ALLOW_ANIMATED_GIFS=True
|
||||||
|
USE_GIFSICLE_ENGINE=False
|
||||||
|
USE_BLACKLIST=False
|
||||||
|
LOADER=thumbor.loaders.http_loader
|
||||||
|
STORAGE=thumbor.storages.file_storage
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
RESULT_STORAGE=thumbor.result_storages.file_storage
|
||||||
|
ENGINE=thumbor.engines.pil
|
||||||
|
SECURITY_KEY="MY_SECURE_KEY"
|
||||||
|
ALLOW_UNSAFE_URL=True
|
||||||
|
ALLOW_OLD_URLS=True
|
||||||
|
FILE_LOADER_ROOT_PATH=/data/loader
|
||||||
|
HTTP_LOADER_CONNECT_TIMEOUT=5
|
||||||
|
HTTP_LOADER_REQUEST_TIMEOUT=20
|
||||||
|
HTTP_LOADER_FOLLOW_REDIRECTS=True
|
||||||
|
HTTP_LOADER_MAX_REDIRECTS=5
|
||||||
|
HTTP_LOADER_FORWARD_USER_AGENT=False
|
||||||
|
HTTP_LOADER_DEFAULT_USER_AGENT="Thumbor/5.2.1"
|
||||||
|
HTTP_LOADER_PROXY_HOST=None
|
||||||
|
HTTP_LOADER_PROXY_PORT=None
|
||||||
|
HTTP_LOADER_PROXY_USERNAME=None
|
||||||
|
HTTP_LOADER_PROXY_PASSWORD=None
|
||||||
|
HTTP_LOADER_CA_CERTS=None
|
||||||
|
HTTP_LOADER_VALIDATE_CERTS=True
|
||||||
|
HTTP_LOADER_CLIENT_KEY=None
|
||||||
|
HTTP_LOADER_CLIENT_CERT=None
|
||||||
|
HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT=False
|
||||||
|
STORAGE_EXPIRATION_SECONDS=2592000
|
||||||
|
STORES_CRYPTO_KEY_FOR_EACH_IMAGE=False
|
||||||
|
FILE_STORAGE_ROOT_PATH=/data/storage
|
||||||
|
UPLOAD_MAX_SIZE=0
|
||||||
|
UPLOAD_ENABLED=False
|
||||||
|
UPLOAD_PHOTO_STORAGE=thumbor.storages.file_storage
|
||||||
|
UPLOAD_DELETE_ALLOWED=False
|
||||||
|
UPLOAD_PUT_ALLOWED=False
|
||||||
|
UPLOAD_DEFAULT_FILENAME=image
|
||||||
|
MONGO_STORAGE_SERVER_HOST=mongo
|
||||||
|
MONGO_STORAGE_SERVER_PORT=27017
|
||||||
|
MONGO_STORAGE_SERVER_DB=thumbor
|
||||||
|
MONGO_STORAGE_SERVER_COLLECTION=images
|
||||||
|
REDIS_STORAGE_SERVER_HOST=redis
|
||||||
|
REDIS_STORAGE_SERVER_PORT=6379
|
||||||
|
REDIS_STORAGE_SERVER_DB=0
|
||||||
|
REDIS_STORAGE_SERVER_PASSWORD=None
|
||||||
|
REDIS_RESULT_STORAGE_SERVER_HOST=redis
|
||||||
|
REDIS_RESULT_STORAGE_SERVER_PORT=6379
|
||||||
|
REDIS_RESULT_STORAGE_SERVER_DB=0
|
||||||
|
REDIS_RESULT_STORAGE_SERVER_PASSWORD=None
|
||||||
|
MEMCACHE_STORAGE_SERVERS=["localhost:11211",]
|
||||||
|
MIXED_STORAGE_FILE_STORAGE=thumbor.storages.no_storage
|
||||||
|
MIXED_STORAGE_CRYPTO_STORAGE=thumbor.storages.no_storage
|
||||||
|
MIXED_STORAGE_DETECTOR_STORAGE=thumbor.storages.no_storage
|
||||||
|
META_CALLBACK_NAME=None
|
||||||
|
DETECTORS=[]
|
||||||
|
FACE_DETECTOR_CASCADE_FILE=haarcascade_frontalface_alt.xml
|
||||||
|
OPTIMIZERS=[]
|
||||||
|
JPEGTRAN_PATH=/usr/bin/jpegtran
|
||||||
|
PROGRESSIVE_JPEG=True
|
||||||
|
FILTERS=["thumbor.filters.brightness", "thumbor.filters.contrast", "thumbor.filters.rgb", "thumbor.filters.round_corner", "thumbor.filters.quality", "thumbor.filters.noise", "thumbor.filters.watermark", "thumbor.filters.equalize", "thumbor.filters.fill", "thumbor.filters.sharpen", "thumbor.filters.strip_icc", "thumbor.filters.frame", "thumbor.filters.grayscale", "thumbor.filters.rotate", "thumbor.filters.format", "thumbor.filters.max_bytes", "thumbor.filters.convolution", "thumbor.filters.blur", "thumbor.filters.extract_focal", "thumbor.filters.no_upscale"]
|
||||||
|
RESULT_STORAGE_EXPIRATION_SECONDS=0
|
||||||
|
RESULT_STORAGE_FILE_STORAGE_ROOT_PATH=/data/result_storage
|
||||||
|
RESULT_STORAGE_STORES_UNSAFE=False
|
||||||
|
REDIS_QUEUE_SERVER_HOST=redis
|
||||||
|
REDIS_QUEUE_SERVER_PORT=6379
|
||||||
|
REDIS_QUEUE_SERVER_DB="0"
|
||||||
|
REDIS_QUEUE_SERVER_PASSWORD=None
|
||||||
|
SQS_QUEUE_KEY_ID=None
|
||||||
|
SQS_QUEUE_KEY_SECRET=None
|
||||||
|
SQS_QUEUE_REGION=us-east-1
|
||||||
|
USE_CUSTOM_ERROR_HANDLING=False
|
||||||
|
ERROR_HANDLER_MODULE=thumbor.error_handlers.sentry
|
||||||
|
ERROR_FILE_LOGGER=None
|
||||||
|
ERROR_FILE_NAME_USE_CONTEXT="False"
|
||||||
|
SENTRY_DSN_URL=
|
||||||
|
TC_AWS_REGION=eu-west-1
|
||||||
|
TC_AWS_ENDPOINT=None
|
||||||
|
TC_AWS_STORAGE_BUCKET=
|
||||||
|
TC_AWS_STORAGE_ROOT_PATH=
|
||||||
|
TC_AWS_LOADER_BUCKET=
|
||||||
|
TC_AWS_LOADER_ROOT_PATH=
|
||||||
|
TC_AWS_RESULT_STORAGE_BUCKET=
|
||||||
|
TC_AWS_RESULT_STORAGE_ROOT_PATH=
|
||||||
|
TC_AWS_STORAGE_SSE=False
|
||||||
|
TC_AWS_STORAGE_RRS=False
|
||||||
|
TC_AWS_ENABLE_HTTP_LOADER=False
|
||||||
|
TC_AWS_ALLOWED_BUCKETS=False
|
||||||
|
TC_AWS_STORE_METADATA=False
|
||||||
|
|
||||||
### SOLR ##################################################
|
### SOLR ##################################################
|
||||||
|
|
||||||
SOLR_VERSION=5.5
|
SOLR_VERSION=5.5
|
||||||
SOLR_PORT=8983
|
SOLR_PORT=8983
|
||||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||||
|
SOLR_DATAIMPORTHANDLER_MSSQL=false
|
||||||
|
|
||||||
|
### GITLAB ###############################################
|
||||||
|
GITLAB_HOST_HTTP_PORT=8989
|
||||||
|
GITLAB_HOST_HTTPS_PORT=9898
|
||||||
|
GITLAB_HOST_SSH_PORT=2289
|
||||||
|
GITLAB_DOMAIN_NAME=http://localhost
|
||||||
|
GITLAB_ROOT_PASSWORD=laradock
|
||||||
|
GITLAB_HOST_LOG_PATH=./logs/gitlab
|
||||||
|
|
||||||
|
### JUPYTERHUB ###############################################
|
||||||
|
JUPYTERHUB_POSTGRES_HOST=postgres
|
||||||
|
JUPYTERHUB_POSTGRES_USER=laradock_jupyterhub
|
||||||
|
JUPYTERHUB_POSTGRES_PASSWORD=laradock_jupyterhub
|
||||||
|
JUPYTERHUB_POSTGRES_DB=laradock_jupyterhub
|
||||||
|
JUPYTERHUB_PORT=9991
|
||||||
|
JUPYTERHUB_OAUTH_CALLBACK_URL=http://laradock:9991/hub/oauth_callback
|
||||||
|
JUPYTERHUB_OAUTH_CLIENT_ID={GITHUB_CLIENT_ID}
|
||||||
|
JUPYTERHUB_OAUTH_CLIENT_SECRET={GITHUB_CLIENT_SECRET}
|
||||||
|
JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=laradock_jupyterhub-user
|
||||||
|
JUPYTERHUB_CUSTOM_CONFIG=./jupyterhub/jupyterhub_config.py
|
||||||
|
JUPYTERHUB_USER_DATA=/jupyterhub
|
||||||
|
JUPYTERHUB_USER_LIST=./jupyterhub/userlist
|
||||||
|
|
||||||
|
### IPYTHON ##################################################
|
||||||
|
LARADOCK_IPYTHON_CONTROLLER_IP=127.0.0.1
|
||||||
|
|
||||||
|
### NETDATA ###############################################
|
||||||
|
NETDATA_PORT=19999
|
||||||
|
|
||||||
|
### PHPREDISADMIN #########################################
|
||||||
|
REDIS_WEBUI_USERNAME=laradock
|
||||||
|
REDIS_WEBUI_PASSWORD=laradock
|
||||||
|
REDIS_WEBUI_CONNECT_HOST=redis
|
||||||
|
REDIS_WEBUI_CONNECT_PORT=6379
|
||||||
|
REDIS_WEBUI_PORT=9987
|
||||||
|
|
||||||
|
### MONGOWEBUI ###############################################
|
||||||
|
MONGO_WEBUI_PORT=3000
|
||||||
|
MONGO_WEBUI_ROOT_URL=http://localhost
|
||||||
|
MONGO_WEBUI_MONGO_URL=mongodb://mongo:27017/
|
||||||
|
MONGO_WEBUI_INSTALL_MONGO=false
|
||||||
|
|
||||||
|
### METABASE ###############################################
|
||||||
|
METABASE_PORT=3030
|
||||||
|
METABASE_DB_FILE=metabase.db
|
||||||
|
METABASE_JAVA_TIMEZONE=US/Pacific
|
||||||
|
|
||||||
|
### IDE ###############################################
|
||||||
|
IDE_THEIA_PORT=987
|
||||||
|
IDE_WEBIDE_PORT=984
|
||||||
|
IDE_CODIAD_PORT=985
|
||||||
|
IDE_ICECODER_PORT=986
|
||||||
|
|
||||||
|
### DOCKERREGISTRY ###############################################
|
||||||
|
DOCKER_REGISTRY_PORT=5000
|
||||||
|
|
||||||
|
### DOCKERWEBUI ###############################################
|
||||||
|
DOCKER_WEBUI_REGISTRY_HOST=docker-registry
|
||||||
|
DOCKER_WEBUI_REGISTRY_PORT=5000
|
||||||
|
# if have use https proxy please set to 1
|
||||||
|
DOCKER_REGISTRY_USE_SSL=0
|
||||||
|
DOCKER_REGISTRY_BROWSE_ONLY=false
|
||||||
|
DOCKER_WEBUI_PORT=8754
|
||||||
|
|
||||||
|
### MAILU ###############################################
|
||||||
|
MAILU_VERSION=latest
|
||||||
|
MAILU_RECAPTCHA_PUBLIC_KEY=<YOUR_RECAPTCHA_PUBLIC_KEY>
|
||||||
|
MAILU_RECAPTCHA_PRIVATE_KEY=<YOUR_RECAPTCHA_PRIVATE_KEY>
|
||||||
|
# Main mail domain
|
||||||
|
MAILU_HTTP_PORT=6080
|
||||||
|
MAILU_HTTPS_PORT=60443
|
||||||
|
MAILU_DOMAIN=example.com
|
||||||
|
MAILU_INIT_ADMIN_USERNAME=laradock
|
||||||
|
MAILU_INIT_ADMIN_PASSWORD=laradock
|
||||||
|
# Hostnames for this server, separated with comas
|
||||||
|
MAILU_HOSTNAMES=mail.example.com,alternative.example.com,yetanother.example.com
|
||||||
|
# Postmaster local part (will append the main mail domain)
|
||||||
|
MAILU_POSTMASTER=admin
|
||||||
|
# Set to a randomly generated 16 bytes string
|
||||||
|
MAILU_SECRET_KEY=ChangeMeChangeMe
|
||||||
|
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail)
|
||||||
|
MAILU_TLS_FLAVOR=cert
|
||||||
|
# Authentication rate limit (per source IP address)
|
||||||
|
MAILU_AUTH_RATELIMIT=10/minute;1000/hour
|
||||||
|
# Opt-out of statistics, replace with "True" to opt out
|
||||||
|
MAILU_DISABLE_STATISTICS=False
|
||||||
|
# Message size limit in bytes
|
||||||
|
# Default: accept messages up to 50MB
|
||||||
|
MAILU_MESSAGE_SIZE_LIMIT=50000000
|
||||||
|
# Will relay all outgoing mails if configured
|
||||||
|
MAILU_RELAYHOST=
|
||||||
|
# Networks granted relay permissions, make sure that you include your Docker
|
||||||
|
# internal network (default to 172.17.0.0/16)
|
||||||
|
MAILU_RELAYNETS=172.16.0.0/12
|
||||||
|
# Fetchmail delay
|
||||||
|
MAILU_FETCHMAIL_DELAY=600
|
||||||
|
# Recipient delimiter, character used to delimiter localpart from custom address part
|
||||||
|
# e.g. localpart+custom@domain;tld
|
||||||
|
MAILU_RECIPIENT_DELIMITER=+
|
||||||
|
# DMARC rua and ruf email
|
||||||
|
MAILU_DMARC_RUA=admin
|
||||||
|
MAILU_DMARC_RUF=admin
|
||||||
|
# Weclome email, enable and set a topic and body if you wish to send welcome
|
||||||
|
# emails to all users.
|
||||||
|
MAILU_WELCOME=True
|
||||||
|
MAILU_WELCOME_SUBJECT=Welcome to your new email account
|
||||||
|
MAILU_WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!
|
||||||
|
# Path to the admin interface if enabled
|
||||||
|
MAILU_WEB_ADMIN=/admin
|
||||||
|
# Path to the webmail if enabled
|
||||||
|
MAILU_WEB_WEBMAIL=/webmail
|
||||||
|
# Website name
|
||||||
|
MAILU_SITENAME=Example Mail
|
||||||
|
# Linked Website URL
|
||||||
|
MAILU_WEBSITE=http://mail.example.com
|
||||||
|
# Default password scheme used for newly created accounts and changed passwords
|
||||||
|
# (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
|
||||||
|
MAILU_PASSWORD_SCHEME=SHA512-CRYPT
|
||||||
|
# Expose the admin interface (value: true, false)
|
||||||
|
MAILU_ADMIN=true
|
||||||
|
# Choose which webmail to run if any (values: roundcube, rainloop, none)
|
||||||
|
MAILU_WEBMAIL=rainloop
|
||||||
|
# Dav server implementation (value: radicale, none)
|
||||||
|
MAILU_WEBDAV=radicale
|
||||||
|
3
gitlab/Dockerfile
Normal file
3
gitlab/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM gitlab/gitlab-ce:latest
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
5
ide-codiad/Dockerfile
Normal file
5
ide-codiad/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM linuxserver/codiad
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
COPY config.php /defaults/config.php
|
43
ide-codiad/config.php
Normal file
43
ide-codiad/config.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* Copyright (c) Codiad & Kent Safranski (codiad.com), distributed
|
||||||
|
* as-is and without warranty under the MIT License. See
|
||||||
|
* [root]/license.txt for more. This information must remain intact.
|
||||||
|
*/
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// CONFIG
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// PATH TO CODIAD
|
||||||
|
define("BASE_PATH", "/config/www/");
|
||||||
|
// BASE URL TO CODIAD (without trailing slash)
|
||||||
|
define("BASE_URL", "localhost");
|
||||||
|
// THEME : default, modern or clear (look at /themes)
|
||||||
|
define("THEME", "default");
|
||||||
|
// ABSOLUTE PATH, this is used as whitelist for absolute path projects
|
||||||
|
define("WHITEPATHS", BASE_PATH . ",/home,/");
|
||||||
|
// SESSIONS (e.g. 7200)
|
||||||
|
$cookie_lifetime = "0";
|
||||||
|
// TIMEZONE
|
||||||
|
date_default_timezone_set(getenv('TZ','UTC'));
|
||||||
|
// Allows to overwrite the default language
|
||||||
|
//define("LANGUAGE", "en");
|
||||||
|
// External Authentification
|
||||||
|
//define("AUTH_PATH", "/path/to/customauth.php");
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// ** DO NOT EDIT CONFIG BELOW **
|
||||||
|
//////////////////////////////////////////////////////////////////
|
||||||
|
// PATHS
|
||||||
|
define("COMPONENTS", BASE_PATH . "/components");
|
||||||
|
define("PLUGINS", BASE_PATH . "/plugins");
|
||||||
|
define("THEMES", BASE_PATH . "/themes");
|
||||||
|
define("DATA", BASE_PATH . "/data");
|
||||||
|
define("WORKSPACE", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
|
||||||
|
// URLS
|
||||||
|
define("WSURL", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
|
||||||
|
// Marketplace
|
||||||
|
define("MARKETURL", "http://market.codiad.com/json");
|
||||||
|
// Update Check
|
||||||
|
//define("UPDATEURL", "http://update.codiad.com/?v={VER}&o={OS}&p={PHP}&w={WEB}&a={ACT}");
|
||||||
|
define("ARCHIVEURL", "https://github.com/Codiad/Codiad/archive/master.zip");
|
||||||
|
define("COMMITURL", "https://api.github.com/repos/Codiad/Codiad/commits");
|
||||||
|
?>
|
21
ide-icecoder/Dockerfile
Normal file
21
ide-icecoder/Dockerfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
FROM php:alpine
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
ARG PUID=1000
|
||||||
|
ENV PUID ${PUID}
|
||||||
|
ARG PGID=1000
|
||||||
|
ENV PGID ${PGID}
|
||||||
|
|
||||||
|
RUN apk add --no-cache git
|
||||||
|
|
||||||
|
RUN addgroup -g $PGID -S laradock && \
|
||||||
|
adduser -u $PUID -S laradock -G laradock
|
||||||
|
|
||||||
|
USER laradock
|
||||||
|
|
||||||
|
RUN cd /home/laradock && git clone https://github.com/mattpass/ICEcoder.git
|
||||||
|
|
||||||
|
WORKDIR /home/laradock/ICEcoder
|
||||||
|
|
||||||
|
CMD ["php","-S","0.0.0.0:8080"]
|
5
ide-theia/Dockerfile
Normal file
5
ide-theia/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM theiaide/theia
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf
|
3
ide-webide/Dockerfile
Normal file
3
ide-webide/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM webide/webide
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
17
ipython/Dockerfile.controller
Normal file
17
ipython/Dockerfile.controller
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM python:3.5-alpine
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apk add --no-cache build-base
|
||||||
|
|
||||||
|
RUN python -m pip --quiet --no-cache-dir install \
|
||||||
|
ipyparallel
|
||||||
|
|
||||||
|
RUN ipython profile create --parallel --profile=default
|
||||||
|
|
||||||
|
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||||
|
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||||
|
|
||||||
|
CMD ["sh","-c","ipcontroller --ip=* --reuse"]
|
23
ipython/Dockerfile.engine
Normal file
23
ipython/Dockerfile.engine
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM python:3.5-alpine
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apk add --no-cache build-base
|
||||||
|
|
||||||
|
RUN python -m pip --quiet --no-cache-dir install \
|
||||||
|
ipyparallel \
|
||||||
|
numpy \
|
||||||
|
pandas \
|
||||||
|
pymongo \
|
||||||
|
redis \
|
||||||
|
requests \
|
||||||
|
bs4
|
||||||
|
|
||||||
|
RUN ipython profile create --parallel --profile=default
|
||||||
|
|
||||||
|
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||||
|
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||||
|
|
||||||
|
CMD ["sh","-c","ipcluster engines"]
|
16
ipython/ipcontroller-client.json
Normal file
16
ipython/ipcontroller-client.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"key": "868074dd-060311910ab3d6991611bccf",
|
||||||
|
"signature_scheme": "hmac-sha256",
|
||||||
|
"unpack": "json",
|
||||||
|
"pack": "json",
|
||||||
|
"ssh": "",
|
||||||
|
"task_scheme": "leastload",
|
||||||
|
"interface": "tcp://*",
|
||||||
|
"location": "laradock-ipython",
|
||||||
|
"notification": 33338,
|
||||||
|
"iopub": 33337,
|
||||||
|
"control": 33336,
|
||||||
|
"mux": 33335,
|
||||||
|
"task": 33334,
|
||||||
|
"registration": 33333
|
||||||
|
}
|
16
ipython/ipcontroller-engine.json
Normal file
16
ipython/ipcontroller-engine.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"key": "868074dd-060311910ab3d6991611bccf",
|
||||||
|
"signature_scheme": "hmac-sha256",
|
||||||
|
"unpack": "json",
|
||||||
|
"pack": "json",
|
||||||
|
"ssh": "",
|
||||||
|
"interface": "tcp://*",
|
||||||
|
"location": "laradock-ipython",
|
||||||
|
"iopub": 33327,
|
||||||
|
"hb_ping": 33328,
|
||||||
|
"hb_pong": 33329,
|
||||||
|
"control": 33330,
|
||||||
|
"mux": 33331,
|
||||||
|
"task": 33332,
|
||||||
|
"registration": 33333
|
||||||
|
}
|
26
jupyterhub/Dockerfile
Normal file
26
jupyterhub/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
FROM python
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
ENV JUPYTERHUB_USER_DATA ${JUPYTERHUB_USER_DATA}
|
||||||
|
ENV JUPYTERHUB_POSTGRES_DB ${JUPYTERHUB_POSTGRES_DB}
|
||||||
|
ENV JUPYTERHUB_POSTGRES_USER ${JUPYTERHUB_POSTGRES_USER}
|
||||||
|
ENV JUPYTERHUB_POSTGRES_HOST ${JUPYTERHUB_POSTGRES_HOST}
|
||||||
|
ENV JUPYTERHUB_POSTGRES_PASSWORD ${JUPYTERHUB_POSTGRES_PASSWORD}
|
||||||
|
ENV JUPYTERHUB_OAUTH_CALLBACK_URL ${JUPYTERHUB_OAUTH_CALLBACK_URL}
|
||||||
|
ENV JUPYTERHUB_OAUTH_CLIENT_ID ${JUPYTERHUB_OAUTH_CLIENT_ID}
|
||||||
|
ENV JUPYTERHUB_OAUTH_CLIENT_SECRET ${JUPYTERHUB_OAUTH_CLIENT_SECRET}
|
||||||
|
ENV JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE ${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
|
||||||
|
|
||||||
|
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
|
||||||
|
|
||||||
|
RUN apt update -yqq && \
|
||||||
|
apt-get install -y nodejs
|
||||||
|
|
||||||
|
RUN npm install -g configurable-http-proxy
|
||||||
|
|
||||||
|
RUN pip install jupyterhub
|
||||||
|
RUN pip install oauthenticator
|
||||||
|
RUN pip install dockerspawner
|
||||||
|
RUN pip install psycopg2 psycopg2-binary
|
||||||
|
|
||||||
|
CMD ["sh", "-c", "jupyterhub upgrade-db && jupyterhub -f /jupyterhub_config.py"]
|
72
jupyterhub/Dockerfile.user
Normal file
72
jupyterhub/Dockerfile.user
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
FROM tensorflow/tensorflow:latest-gpu
|
||||||
|
|
||||||
|
MAINTAINER ahkui <ahkui@outlook.com>
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
python \
|
||||||
|
python-dev \
|
||||||
|
&& \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get autoclean && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
wget \
|
||||||
|
git \
|
||||||
|
&& \
|
||||||
|
apt-get autoremove -y && \
|
||||||
|
apt-get autoclean && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
|
||||||
|
python3 get-pip.py && \
|
||||||
|
rm get-pip.py
|
||||||
|
|
||||||
|
RUN python3 -m pip --quiet --no-cache-dir install \
|
||||||
|
Pillow \
|
||||||
|
h5py \
|
||||||
|
ipykernel \
|
||||||
|
jupyter \
|
||||||
|
notebook \
|
||||||
|
jupyterhub \
|
||||||
|
matplotlib \
|
||||||
|
numpy \
|
||||||
|
pandas \
|
||||||
|
scipy \
|
||||||
|
sklearn \
|
||||||
|
Flask \
|
||||||
|
gunicorn \
|
||||||
|
pymongo \
|
||||||
|
redis \
|
||||||
|
requests \
|
||||||
|
ipyparallel \
|
||||||
|
bs4 \
|
||||||
|
&& \
|
||||||
|
python3 -m ipykernel.kernelspec
|
||||||
|
|
||||||
|
RUN pip --no-cache-dir install \
|
||||||
|
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp35-cp35m-linux_x86_64.whl
|
||||||
|
|
||||||
|
RUN ln -s -f /usr/bin/python3 /usr/bin/python
|
||||||
|
|
||||||
|
COPY start.sh /usr/local/bin/
|
||||||
|
COPY start-notebook.sh /usr/local/bin/
|
||||||
|
COPY start-singleuser.sh /usr/local/bin/
|
||||||
|
RUN chmod +x /usr/local/bin/start.sh
|
||||||
|
RUN chmod +x /usr/local/bin/start-notebook.sh
|
||||||
|
RUN chmod +x /usr/local/bin/start-singleuser.sh
|
||||||
|
|
||||||
|
RUN wget --quiet https://github.com/krallin/tini/releases/download/v0.10.0/tini && \
|
||||||
|
mv tini /usr/local/bin/tini && \
|
||||||
|
chmod +x /usr/local/bin/tini
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
|
ENTRYPOINT ["tini", "--"]
|
||||||
|
|
||||||
|
CMD ["start-notebook.sh"]
|
||||||
|
|
||||||
|
|
121
jupyterhub/jupyterhub_config.py
Normal file
121
jupyterhub/jupyterhub_config.py
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
# Copyright (c) Jupyter Development Team.
|
||||||
|
# Distributed under the terms of the Modified BSD License.
|
||||||
|
|
||||||
|
# Configuration file for JupyterHub
|
||||||
|
import os
|
||||||
|
|
||||||
|
c = get_config()
|
||||||
|
|
||||||
|
def create_dir_hook(spawner):
|
||||||
|
username = spawner.user.name # get the username
|
||||||
|
volume_path = os.path.join('/user-data', username)
|
||||||
|
if not os.path.exists(volume_path):
|
||||||
|
# create a directory with umask 0755
|
||||||
|
# hub and container user must have the same UID to be writeable
|
||||||
|
# still readable by other users on the system
|
||||||
|
os.mkdir(volume_path, 0o755)
|
||||||
|
os.chown(volume_path, 1000,100)
|
||||||
|
# now do whatever you think your user needs
|
||||||
|
# ...
|
||||||
|
pass
|
||||||
|
|
||||||
|
# attach the hook function to the spawner
|
||||||
|
c.Spawner.pre_spawn_hook = create_dir_hook
|
||||||
|
|
||||||
|
# We rely on environment variables to configure JupyterHub so that we
|
||||||
|
# avoid having to rebuild the JupyterHub container every time we change a
|
||||||
|
# configuration parameter.
|
||||||
|
|
||||||
|
# Spawn single-user servers as Docker containers
|
||||||
|
c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawner'
|
||||||
|
|
||||||
|
# Spawn containers from this image
|
||||||
|
c.DockerSpawner.image = os.environ['JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE']
|
||||||
|
|
||||||
|
# JupyterHub requires a single-user instance of the Notebook server, so we
|
||||||
|
# default to using the `start-singleuser.sh` script included in the
|
||||||
|
# jupyter/docker-stacks *-notebook images as the Docker run command when
|
||||||
|
# spawning containers. Optionally, you can override the Docker run command
|
||||||
|
# using the DOCKER_SPAWN_CMD environment variable.
|
||||||
|
spawn_cmd = os.environ.get('JUPYTERHUB_DOCKER_SPAWN_CMD', "start-singleuser.sh")
|
||||||
|
c.DockerSpawner.extra_create_kwargs.update({ 'command': spawn_cmd })
|
||||||
|
|
||||||
|
# Connect containers to this Docker network
|
||||||
|
network_name = os.environ.get('JUPYTERHUB_NETWORK_NAME','laradock_backend')
|
||||||
|
c.DockerSpawner.use_internal_ip = True
|
||||||
|
c.DockerSpawner.network_name = network_name
|
||||||
|
|
||||||
|
# Pass the network name as argument to spawned containers
|
||||||
|
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
|
||||||
|
# c.DockerSpawner.extra_host_config = { 'network_mode': network_name, "devices":["/dev/nvidiactl","/dev/nvidia-uvm","/dev/nvidia0"] }
|
||||||
|
# Explicitly set notebook directory because we'll be mounting a host volume to
|
||||||
|
# it. Most jupyter/docker-stacks *-notebook images run the Notebook server as
|
||||||
|
# user `jovyan`, and set the notebook directory to `/home/jovyan/work`.
|
||||||
|
# We follow the same convention.
|
||||||
|
# notebook_dir = os.environ.get('JUPYTERHUB_DOCKER_NOTEBOOK_DIR') or '/home/jovyan/work'
|
||||||
|
notebook_dir = '/notebooks'
|
||||||
|
c.DockerSpawner.notebook_dir = notebook_dir
|
||||||
|
|
||||||
|
# Mount the real user's Docker volume on the host to the notebook user's
|
||||||
|
# notebook directory in the container
|
||||||
|
user_data = os.environ.get('JUPYTERHUB_USER_DATA','/jupyterhub')
|
||||||
|
c.DockerSpawner.volumes = {
|
||||||
|
user_data+'/{username}': notebook_dir
|
||||||
|
}
|
||||||
|
|
||||||
|
c.DockerSpawner.extra_create_kwargs.update({ 'user': 'root'})
|
||||||
|
|
||||||
|
# volume_driver is no longer a keyword argument to create_container()
|
||||||
|
# c.DockerSpawner.extra_create_kwargs.update({ 'volume_driver': 'local' })
|
||||||
|
# Remove containers once they are stopped
|
||||||
|
c.DockerSpawner.remove_containers = True
|
||||||
|
|
||||||
|
# For debugging arguments passed to spawned containers
|
||||||
|
c.DockerSpawner.debug = True
|
||||||
|
|
||||||
|
# User containers will access hub by container name on the Docker network
|
||||||
|
c.JupyterHub.hub_ip = 'jupyterhub'
|
||||||
|
c.JupyterHub.hub_port = 8000
|
||||||
|
|
||||||
|
# TLS config
|
||||||
|
c.JupyterHub.port = 80
|
||||||
|
# c.JupyterHub.ssl_key = os.environ['SSL_KEY']
|
||||||
|
# c.JupyterHub.ssl_cert = os.environ['SSL_CERT']
|
||||||
|
|
||||||
|
# Authenticate users with GitHub OAuth
|
||||||
|
c.JupyterHub.authenticator_class = 'oauthenticator.GitHubOAuthenticator'
|
||||||
|
c.GitHubOAuthenticator.oauth_callback_url = os.environ['JUPYTERHUB_OAUTH_CALLBACK_URL']
|
||||||
|
c.GitHubOAuthenticator.client_id = os.environ['JUPYTERHUB_OAUTH_CLIENT_ID']
|
||||||
|
c.GitHubOAuthenticator.client_secret = os.environ['JUPYTERHUB_OAUTH_CLIENT_SECRET']
|
||||||
|
|
||||||
|
# Persist hub data on volume mounted inside container
|
||||||
|
data_dir = '/data'
|
||||||
|
|
||||||
|
c.JupyterHub.cookie_secret_file = os.path.join(data_dir,
|
||||||
|
'jupyterhub_cookie_secret')
|
||||||
|
|
||||||
|
print(os.environ)
|
||||||
|
|
||||||
|
c.JupyterHub.db_url = 'postgresql://{user}:{password}@{host}/{db}'.format(
|
||||||
|
user=os.environ['JUPYTERHUB_POSTGRES_USER'],
|
||||||
|
host=os.environ['JUPYTERHUB_POSTGRES_HOST'],
|
||||||
|
password=os.environ['JUPYTERHUB_POSTGRES_PASSWORD'],
|
||||||
|
db=os.environ['JUPYTERHUB_POSTGRES_DB'],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Whitlelist users and admins
|
||||||
|
c.Authenticator.whitelist = whitelist = set()
|
||||||
|
c.Authenticator.admin_users = admin = set()
|
||||||
|
c.JupyterHub.admin_access = True
|
||||||
|
pwd = os.path.dirname(__file__)
|
||||||
|
with open(os.path.join(pwd, 'userlist')) as f:
|
||||||
|
for line in f:
|
||||||
|
if not line:
|
||||||
|
continue
|
||||||
|
parts = line.split()
|
||||||
|
name = parts[0]
|
||||||
|
print(name)
|
||||||
|
whitelist.add(name)
|
||||||
|
if len(parts) > 1 and parts[1] == 'admin':
|
||||||
|
admin.add(name)
|
||||||
|
admin.add('laradock')
|
12
jupyterhub/start-notebook.sh
Normal file
12
jupyterhub/start-notebook.sh
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) Jupyter Development Team.
|
||||||
|
# Distributed under the terms of the Modified BSD License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ ! -z "${JUPYTERHUB_API_TOKEN}" ]]; then
|
||||||
|
# launched by JupyterHub, use single-user entrypoint
|
||||||
|
exec /usr/local/bin/start-singleuser.sh $*
|
||||||
|
else
|
||||||
|
. /usr/local/bin/start.sh jupyter notebook $*
|
||||||
|
fi
|
40
jupyterhub/start-singleuser.sh
Normal file
40
jupyterhub/start-singleuser.sh
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) Jupyter Development Team.
|
||||||
|
# Distributed under the terms of the Modified BSD License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# set default ip to 0.0.0.0
|
||||||
|
if [[ "$NOTEBOOK_ARGS $@" != *"--ip="* ]]; then
|
||||||
|
NOTEBOOK_ARGS="--ip=0.0.0.0 $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# handle some deprecated environment variables
|
||||||
|
# from DockerSpawner < 0.8.
|
||||||
|
# These won't be passed from DockerSpawner 0.9,
|
||||||
|
# so avoid specifying --arg=empty-string
|
||||||
|
# if [ ! -z "$NOTEBOOK_DIR" ]; then
|
||||||
|
# NOTEBOOK_ARGS="--notebook-dir='$NOTEBOOK_DIR' $NOTEBOOK_ARGS"
|
||||||
|
# fi
|
||||||
|
if [ ! -z "$JPY_PORT" ]; then
|
||||||
|
NOTEBOOK_ARGS="--port=$JPY_PORT $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JPY_USER" ]; then
|
||||||
|
NOTEBOOK_ARGS="--user=$JPY_USER $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JPY_COOKIE_NAME" ]; then
|
||||||
|
NOTEBOOK_ARGS="--cookie-name=$JPY_COOKIE_NAME $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JPY_BASE_URL" ]; then
|
||||||
|
NOTEBOOK_ARGS="--base-url=$JPY_BASE_URL $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JPY_HUB_PREFIX" ]; then
|
||||||
|
NOTEBOOK_ARGS="--hub-prefix=$JPY_HUB_PREFIX $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JPY_HUB_API_URL" ]; then
|
||||||
|
NOTEBOOK_ARGS="--hub-api-url=$JPY_HUB_API_URL $NOTEBOOK_ARGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
NOTEBOOK_ARGS=" --allow-root --notebook-dir='/notebooks' $NOTEBOOK_ARGS"
|
||||||
|
|
||||||
|
. /usr/local/bin/start.sh jupyterhub-singleuser $NOTEBOOK_ARGS $@
|
7
jupyterhub/start.sh
Normal file
7
jupyterhub/start.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) Jupyter Development Team.
|
||||||
|
# Distributed under the terms of the Modified BSD License.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
exec sh -c "env PATH=$PATH $*"
|
1
jupyterhub/userlist
Normal file
1
jupyterhub/userlist
Normal file
@ -0,0 +1 @@
|
|||||||
|
laradock
|
3
mongo-webui/Dockerfile
Normal file
3
mongo-webui/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM mongoclient/mongoclient
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
@ -9,9 +9,7 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
|||||||
|
|
||||||
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 && chown -R mysql:root /var/lib/mysql/
|
||||||
|
|
||||||
RUN chown -R mysql:root /var/lib/mysql/
|
|
||||||
|
|
||||||
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Copy createdb.sql.example to createdb.sql
|
# Copy createdb.sql.example to createdb.sql
|
||||||
# then uncomment then set database name and username to create you need databases
|
# then uncomment then set database name and username to create you need databases
|
||||||
#
|
#
|
||||||
# example: .env MYSQL_USER=appuser and need db name is myshop_db
|
# example: .env MYSQL_USER=appuser and needed db name is myshop_db
|
||||||
#
|
#
|
||||||
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
|
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
|
||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
[mysql]
|
[mysql]
|
||||||
|
|
||||||
[mysqld]
|
[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
|
character-set-server=utf8
|
||||||
|
@ -14,6 +14,7 @@ RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
|||||||
|
|
||||||
RUN apk update \
|
RUN apk update \
|
||||||
&& apk upgrade \
|
&& apk upgrade \
|
||||||
|
&& apk add --no-cache openssl \
|
||||||
&& apk add --no-cache bash \
|
&& apk add --no-cache bash \
|
||||||
&& adduser -D -H -u 1000 -s /bin/bash www-data
|
&& adduser -D -H -u 1000 -s /bin/bash www-data
|
||||||
|
|
||||||
@ -24,6 +25,7 @@ ARG PHP_UPSTREAM_PORT=9000
|
|||||||
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
|
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
|
||||||
&& rm /etc/nginx/conf.d/default.conf
|
&& rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
CMD ["nginx"]
|
ADD ./startup.sh /opt/startup.sh
|
||||||
|
CMD ["/bin/bash", "/opt/startup.sh"]
|
||||||
|
|
||||||
EXPOSE 80 443
|
EXPOSE 80 443
|
||||||
|
@ -3,6 +3,12 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
|
# For https
|
||||||
|
# listen 443 ssl;
|
||||||
|
# listen [::]:443 ssl ipv6only=on;
|
||||||
|
# ssl_certificate /etc/nginx/ssl/default.crt;
|
||||||
|
# ssl_certificate_key /etc/nginx/ssl/default.key;
|
||||||
|
|
||||||
server_name app.test;
|
server_name app.test;
|
||||||
root /var/www/app;
|
root /var/www/app;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
@ -3,6 +3,12 @@ server {
|
|||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server ipv6only=on;
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
|
# For https
|
||||||
|
# listen 443 ssl default_server;
|
||||||
|
# listen [::]:443 ssl default_server ipv6only=on;
|
||||||
|
# ssl_certificate /etc/nginx/ssl/default.crt;
|
||||||
|
# ssl_certificate_key /etc/nginx/ssl/default.key;
|
||||||
|
|
||||||
server_name localhost;
|
server_name localhost;
|
||||||
root /var/www/public;
|
root /var/www/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
@ -3,6 +3,12 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
|
# For https
|
||||||
|
# listen 443 ssl;
|
||||||
|
# listen [::]:443 ssl ipv6only=on;
|
||||||
|
# ssl_certificate /etc/nginx/ssl/default.crt;
|
||||||
|
# ssl_certificate_key /etc/nginx/ssl/default.key;
|
||||||
|
|
||||||
server_name laravel.test;
|
server_name laravel.test;
|
||||||
root /var/www/laravel/public;
|
root /var/www/laravel/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
@ -3,6 +3,12 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
|
# For https
|
||||||
|
# listen 443 ssl;
|
||||||
|
# listen [::]:443 ssl ipv6only=on;
|
||||||
|
# ssl_certificate /etc/nginx/ssl/default.crt;
|
||||||
|
# ssl_certificate_key /etc/nginx/ssl/default.key;
|
||||||
|
|
||||||
server_name symfony.test;
|
server_name symfony.test;
|
||||||
root /var/www/projects/symfony/web;
|
root /var/www/projects/symfony/web;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
|
0
nginx/ssl/.gitkeep
Normal file
0
nginx/ssl/.gitkeep
Normal file
9
nginx/startup.sh
Normal file
9
nginx/startup.sh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -f /etc/nginx/ssl/default.crt ]; then
|
||||||
|
openssl genrsa -out "/etc/nginx/ssl/default.key" 2048
|
||||||
|
openssl req -new -key "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.csr" -subj "/CN=default/O=default/C=UK"
|
||||||
|
openssl x509 -req -days 365 -in "/etc/nginx/ssl/default.csr" -signkey "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.crt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nginx
|
@ -12,14 +12,20 @@
|
|||||||
# Note: Base Image name format {image-tag}-{php-version}
|
# Note: Base Image name format {image-tag}-{php-version}
|
||||||
#
|
#
|
||||||
|
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
ARG LARADOCK_PHP_VERSION
|
||||||
|
|
||||||
FROM laradock/php-fpm:2.2-${PHP_VERSION}
|
FROM laradock/php-fpm:2.2-${LARADOCK_PHP_VERSION}
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
|
ARG LARADOCK_PHP_VERSION
|
||||||
|
|
||||||
|
# Set Environment Variables
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
# always run apt update when start and after add new source list, then clean up at end.
|
# always run apt update when start and after add new source list, then clean up at end.
|
||||||
RUN apt-get update -yqq && \
|
RUN apt-get update -yqq && \
|
||||||
|
apt-get install -y apt-utils && \
|
||||||
pecl channel-update pecl.php.net
|
pecl channel-update pecl.php.net
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -44,6 +50,35 @@ RUN apt-get update -yqq && \
|
|||||||
# - INSTALL_ZIP_ARCHIVE=true
|
# - INSTALL_ZIP_ARCHIVE=true
|
||||||
#
|
#
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# SSH2:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_SSH2=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_SSH2} = true ]; then \
|
||||||
|
# Install the ssh2 extension
|
||||||
|
apt-get -y install libssh2-1-dev && \
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
pecl install -a ssh2-0.13; \
|
||||||
|
else \
|
||||||
|
pecl install -a ssh2-1.1.2; \
|
||||||
|
fi && \
|
||||||
|
docker-php-ext-enable ssh2 \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# libfaketime:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_FAKETIME=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
|
||||||
|
apt-get install -y libfaketime \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# SOAP:
|
# SOAP:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -105,6 +140,17 @@ RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/e
|
|||||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=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
|
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /usr/local/etc/php/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Phpdbg:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_PHPDBG=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||||
|
# Load the xdebug extension only with phpunit commands
|
||||||
|
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Blackfire:
|
# Blackfire:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -188,6 +234,8 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|||||||
ARG INSTALL_ZIP_ARCHIVE=false
|
ARG INSTALL_ZIP_ARCHIVE=false
|
||||||
|
|
||||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||||
|
apt-get install libzip-dev -y && \
|
||||||
|
docker-php-ext-configure zip --with-libzip && \
|
||||||
# Install the zip extension
|
# Install the zip extension
|
||||||
docker-php-ext-install zip \
|
docker-php-ext-install zip \
|
||||||
;fi
|
;fi
|
||||||
@ -197,7 +245,7 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_PCNTL=false
|
ARG INSTALL_PCNTL=false
|
||||||
RUN if [ ${INSTALL_PCNTL} = true]; then \
|
RUN if [ ${INSTALL_PCNTL} = true ]; then \
|
||||||
# Installs pcntl, helpful for running Horizon
|
# Installs pcntl, helpful for running Horizon
|
||||||
docker-php-ext-install pcntl \
|
docker-php-ext-install pcntl \
|
||||||
;fi
|
;fi
|
||||||
@ -306,6 +354,21 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|||||||
&& docker-php-ext-enable aerospike \
|
&& docker-php-ext-enable aerospike \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# IonCube Loader:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_IONCUBE=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
|
||||||
|
# Install the php ioncube loader
|
||||||
|
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
|
||||||
|
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
|
||||||
|
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
|
||||||
|
&& printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \
|
||||||
|
&& rm -rf /tmp/ioncube* \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Opcache:
|
# Opcache:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -329,15 +392,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
|||||||
docker-php-ext-install mysqli \
|
docker-php-ext-install mysqli \
|
||||||
;fi
|
;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:
|
# Human Language and Character Encoding Support:
|
||||||
@ -398,14 +452,16 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|||||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||||
apt-get install -y apt-transport-https gnupg \
|
apt-get install -y apt-transport-https gnupg \
|
||||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
&& curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||||
&& apt-get update -yqq \
|
&& apt-get update -yqq \
|
||||||
# Install Dependencies
|
# Install Dependencies
|
||||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \
|
||||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||||
|
# link local aliases
|
||||||
|
&& ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \
|
||||||
&& locale-gen \
|
&& locale-gen \
|
||||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
&& pecl install pdo_sqlsrv sqlsrv \
|
||||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||||
&& php -m | grep -q 'sqlsrv' \
|
&& php -m | grep -q 'sqlsrv' \
|
||||||
@ -451,13 +507,43 @@ RUN if [ ${INSTALL_IMAP} = true ]; then \
|
|||||||
docker-php-ext-install imap \
|
docker-php-ext-install imap \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Calendar:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_CALENDAR=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_CALENDAR} = true ]; then \
|
||||||
|
docker-php-ext-configure calendar && \
|
||||||
|
docker-php-ext-install calendar \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Phalcon:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_PHALCON=false
|
||||||
|
ARG LARADOCK_PHALCON_VERSION
|
||||||
|
ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION}
|
||||||
|
|
||||||
|
RUN if [ $INSTALL_PHALCON = true ]; then \
|
||||||
|
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c \
|
||||||
|
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${LARADOCK_PHALCON_VERSION}.zip \
|
||||||
|
&& unzip -d /tmp/ /tmp/cphalcon.zip \
|
||||||
|
&& cd /tmp/cphalcon-${LARADOCK_PHALCON_VERSION}/build \
|
||||||
|
&& ./install \
|
||||||
|
&& echo "extension=phalcon.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini \
|
||||||
|
&& ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-phalcon.ini \
|
||||||
|
&& rm -rf /tmp/cphalcon* \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Check PHP version:
|
# Check PHP version:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
@ -477,6 +563,12 @@ RUN apt-get clean && \
|
|||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
# Adding the faketime library to the preload file needs to be done last
|
||||||
|
# otherwise it will preload it for all commands that follow in this file
|
||||||
|
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
|
||||||
|
echo "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1" > /etc/ld.so.preload \
|
||||||
|
;fi
|
||||||
|
|
||||||
WORKDIR /var/www
|
WORKDIR /var/www
|
||||||
|
|
||||||
CMD ["php-fpm"]
|
CMD ["php-fpm"]
|
||||||
|
@ -25,6 +25,18 @@ RUN apk --update add wget \
|
|||||||
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
|
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 SOAP package:
|
||||||
|
ARG INSTALL_SOAP=false
|
||||||
|
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||||
|
docker-php-ext-install soap \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
#Install BCMath package:
|
||||||
|
ARG INSTALL_BCMATH=false
|
||||||
|
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||||
|
docker-php-ext-install bcmath \
|
||||||
|
;fi
|
||||||
|
|
||||||
# Install PostgreSQL drivers:
|
# Install PostgreSQL drivers:
|
||||||
ARG INSTALL_PGSQL=false
|
ARG INSTALL_PGSQL=false
|
||||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||||
|
1
php-worker/supervisord.d/.gitignore
vendored
Normal file
1
php-worker/supervisord.d/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.conf
|
@ -4,4 +4,4 @@ command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
|
|||||||
autostart=true
|
autostart=true
|
||||||
autorestart=true
|
autorestart=true
|
||||||
numprocs=8
|
numprocs=8
|
||||||
redirect_stderr=true
|
redirect_stderr=true
|
@ -1 +1,3 @@
|
|||||||
*.sh
|
*.sh
|
||||||
|
!init_gitlab_db.sh
|
||||||
|
!init_jupyterhub_db.sh
|
||||||
|
@ -13,20 +13,19 @@
|
|||||||
#
|
#
|
||||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
# 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
|
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||||
# CREATE DATABASE db1;
|
# CREATE DATABASE db1;
|
||||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||||
# EOSQL
|
# EOSQL
|
||||||
|
#
|
||||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||||
# CREATE DATABASE db2;
|
# CREATE DATABASE db2;
|
||||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||||
# EOSQL
|
# EOSQL
|
||||||
|
#
|
||||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||||
# CREATE DATABASE db3;
|
# CREATE DATABASE db3;
|
||||||
|
41
postgres/docker-entrypoint-initdb.d/init_gitlab_db.sh
Normal file
41
postgres/docker-entrypoint-initdb.d/init_gitlab_db.sh
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
### default database and user for gitlab ##############################################
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
|
CREATE USER laradock_gitlab WITH PASSWORD 'laradock_gitlab';
|
||||||
|
CREATE DATABASE laradock_gitlab;
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE laradock_gitlab TO laradock_gitlab;
|
||||||
|
ALTER ROLE laradock_gitlab CREATEROLE SUPERUSER;
|
||||||
|
EOSQL
|
41
postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh
Normal file
41
postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#!/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.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
### default database and user for jupyterhub ##############################################
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||||
|
CREATE USER laradock_jupyterhub WITH PASSWORD 'laradock_jupyterhub';
|
||||||
|
CREATE DATABASE laradock_jupyterhub;
|
||||||
|
GRANT ALL PRIVILEGES ON DATABASE laradock_jupyterhub TO laradock_jupyterhub;
|
||||||
|
ALTER ROLE laradock_jupyterhub CREATEROLE SUPERUSER;
|
||||||
|
EOSQL
|
@ -12,3 +12,13 @@ RUN if [ ${SOLR_DATAIMPORTHANDLER_MYSQL} = true ]; then \
|
|||||||
&& rm /tmp/mysql_connector.tar.gz \
|
&& rm /tmp/mysql_connector.tar.gz \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
ARG SOLR_DATAIMPORTHANDLER_MSSQL=false
|
||||||
|
ENV SOLR_DATAIMPORTHANDLER_MSSQL ${SOLR_DATAIMPORTHANDLER_MSSQL}
|
||||||
|
|
||||||
|
# download mssql connector for dataimporthandler
|
||||||
|
RUN if [ ${SOLR_DATAIMPORTHANDLER_MSSQL} = true ]; then \
|
||||||
|
curl -L -o /tmp/mssql-jdbc-7.0.0.jre8.jar "https://github.com/Microsoft/mssql-jdbc/releases/download/v7.0.0/mssql-jdbc-7.0.0.jre8.jar" \
|
||||||
|
&& mkdir /opt/solr/contrib/dataimporthandler/lib \
|
||||||
|
&& mv /tmp/mssql-jdbc-7.0.0.jre8.jar "/opt/solr/contrib/dataimporthandler/lib/mssql-jdbc-7.0.0.jre8.jar" \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
5
thumbor/Dockerfile
Normal file
5
thumbor/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM apsl/thumbor
|
||||||
|
|
||||||
|
CMD ["thumbor"]
|
||||||
|
|
||||||
|
EXPOSE 8000
|
@ -14,6 +14,11 @@ if [ -n "${PHP_VERSION}" ]; then
|
|||||||
cp env-example .env
|
cp env-example .env
|
||||||
sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${PHP_VERSION}/g" .env
|
sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${PHP_VERSION}/g" .env
|
||||||
sed -i -- 's/=false/=true/g' .env
|
sed -i -- 's/=false/=true/g' .env
|
||||||
|
sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env
|
||||||
|
if [ "${PHP_VERSION}" == "5.6" ]; then
|
||||||
|
sed -i -- 's/^AEROSPIKE_PHP_REPOSITORY=/##AEROSPIKE_PHP_REPOSITORY=/g' .env
|
||||||
|
sed -i -- 's/^# AEROSPIKE_PHP_REPOSITORY=/AEROSPIKE_PHP_REPOSITORY=/g' .env
|
||||||
|
fi
|
||||||
cat .env
|
cat .env
|
||||||
docker-compose build ${BUILD_SERVICE}
|
docker-compose build ${BUILD_SERVICE}
|
||||||
docker images
|
docker images
|
||||||
|
@ -266,7 +266,7 @@ sub vcl_hit {
|
|||||||
return (deliver);
|
return (deliver);
|
||||||
} else {
|
} else {
|
||||||
# No candidate for grace. Fetch a fresh object.
|
# No candidate for grace. Fetch a fresh object.
|
||||||
return(fetch);
|
return(miss);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
# backend is sick - use full grace
|
# backend is sick - use full grace
|
||||||
@ -275,12 +275,12 @@ sub vcl_hit {
|
|||||||
return (deliver);
|
return (deliver);
|
||||||
} else {
|
} else {
|
||||||
# no graced object.
|
# no graced object.
|
||||||
return (fetch);
|
return (miss);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# fetch & deliver once we get the result
|
# fetch & deliver once we get the result
|
||||||
return (fetch); # Dead code, keep as a safeguard
|
return (miss); # Dead code, keep as a safeguard
|
||||||
}
|
}
|
||||||
|
|
||||||
sub vcl_miss {
|
sub vcl_miss {
|
||||||
|
@ -11,7 +11,7 @@ exec bash -c \
|
|||||||
"exec varnishd \
|
"exec varnishd \
|
||||||
-a :$VARNISH_PORT \
|
-a :$VARNISH_PORT \
|
||||||
-T localhost:6082 \
|
-T localhost:6082 \
|
||||||
-F -u varnish \
|
-F \
|
||||||
-f $VARNISH_CONFIG \
|
-f $VARNISH_CONFIG \
|
||||||
-s malloc,$CACHE_SIZE \
|
-s malloc,$CACHE_SIZE \
|
||||||
$VARNISHD_PARAMS"
|
$VARNISHD_PARAMS"
|
||||||
|
@ -12,12 +12,14 @@
|
|||||||
# Note: Base Image name format {image-tag}-{php-version}
|
# Note: Base Image name format {image-tag}-{php-version}
|
||||||
#
|
#
|
||||||
|
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
ARG LARADOCK_PHP_VERSION
|
||||||
|
|
||||||
FROM laradock/workspace:2.2-${PHP_VERSION}
|
FROM laradock/workspace:2.2-${LARADOCK_PHP_VERSION}
|
||||||
|
|
||||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
|
ARG LARADOCK_PHP_VERSION
|
||||||
|
|
||||||
# Set Environment Variables
|
# Set Environment Variables
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
@ -172,6 +174,33 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
|||||||
drush core-status \
|
drush core-status \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# SSH2:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_SSH2=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_SSH2} = true ]; then \
|
||||||
|
# Install the PHP SSH2 extension
|
||||||
|
apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# GMP:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_GMP=false
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_GMP} = true ]; then \
|
||||||
|
# Install the PHP GMP extension
|
||||||
|
apt-get -y install php${PHP_VERSION}-gmp \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# SOAP:
|
# SOAP:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -179,11 +208,10 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
|||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_SOAP=false
|
ARG INSTALL_SOAP=false
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||||
# Install the PHP SOAP extension
|
# Install the PHP SOAP extension
|
||||||
apt-get -y install libxml2-dev php${PHP_VERSION}-soap \
|
apt-get -y install libxml2-dev php${LARADOCK_PHP_VERSION}-soap \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -191,11 +219,10 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_LDAP=false
|
ARG INSTALL_LDAP=false
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||||
apt-get install -y libldap2-dev && \
|
apt-get install -y libldap2-dev && \
|
||||||
apt-get install -y php${PHP_VERSION}-ldap \
|
apt-get install -y php${LARADOCK_PHP_VERSION}-ldap \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -203,10 +230,9 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_IMAP=false
|
ARG INSTALL_IMAP=false
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
|
||||||
|
|
||||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||||
apt-get install -y php${PHP_VERSION}-imap \
|
apt-get install -y php${LARADOCK_PHP_VERSION}-imap \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -229,21 +255,33 @@ RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
|
|||||||
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 install -y php${PHP_VERSION}-xdebug && \
|
apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
|
||||||
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
# ADD for REMOTE debugging
|
# ADD for REMOTE debugging
|
||||||
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
COPY ./xdebug.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Phpdbg:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
ARG INSTALL_PHPDBG=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||||
|
# Load the xdebug extension only with phpunit commands
|
||||||
|
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Blackfire:
|
# Blackfire:
|
||||||
@ -288,18 +326,17 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_MONGO=false
|
ARG INSTALL_MONGO=false
|
||||||
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
|
||||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
pecl install mongo && \
|
pecl install mongo && \
|
||||||
echo "extension=mongo.so" >> /etc/php/${PHP_VERSION}/mods-available/mongo.ini && \
|
echo "extension=mongo.so" >> /etc/php/${LARADOCK_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 \
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||||
;fi && \
|
;fi && \
|
||||||
pecl install mongodb && \
|
pecl install mongodb && \
|
||||||
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
echo "extension=mongodb.so" >> /etc/php/${LARADOCK_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 \
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -307,13 +344,12 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_AMQP=false
|
ARG INSTALL_AMQP=false
|
||||||
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/${PHP_VERSION}/mods-available/amqp.ini && \
|
echo "extension=amqp.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini && \
|
||||||
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -321,12 +357,11 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_PHPREDIS=false
|
ARG INSTALL_PHPREDIS=false
|
||||||
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/${PHP_VERSION}/mods-available/redis.ini && \
|
echo "extension=redis.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/redis.ini && \
|
||||||
phpenmod redis \
|
phpenmod redis \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
@ -335,7 +370,6 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
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
|
||||||
@ -348,8 +382,34 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
|||||||
pecl install swoole; \
|
pecl install swoole; \
|
||||||
fi \
|
fi \
|
||||||
fi && \
|
fi && \
|
||||||
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
|
echo "extension=swoole.so" >> /etc/php/${LARADOCK_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 \
|
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Libpng16 EXTENSION
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_LIBPNG=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_LIBPNG} = true ]; then \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install libpng16-16 \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# IonCube Loader
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_IONCUBE=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
|
||||||
|
# Install the php ioncube loader
|
||||||
|
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
|
||||||
|
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
|
||||||
|
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
|
||||||
|
&& echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/0ioncube.ini \
|
||||||
|
&& rm -rf /tmp/ioncube* \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -374,7 +434,7 @@ USER laradock
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
# Check if NVM needs to be installed
|
# Check if NVM needs to be installed
|
||||||
ARG NODE_VERSION=stable
|
ARG NODE_VERSION=node
|
||||||
ENV NODE_VERSION ${NODE_VERSION}
|
ENV NODE_VERSION ${NODE_VERSION}
|
||||||
ARG INSTALL_NODE=false
|
ARG INSTALL_NODE=false
|
||||||
ARG INSTALL_NPM_GULP=false
|
ARG INSTALL_NPM_GULP=false
|
||||||
@ -386,7 +446,8 @@ 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 \
|
mkdir -p $NVM_DIR && \
|
||||||
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash \
|
||||||
&& . $NVM_DIR/nvm.sh \
|
&& . $NVM_DIR/nvm.sh \
|
||||||
&& nvm install ${NODE_VERSION} \
|
&& nvm install ${NODE_VERSION} \
|
||||||
&& nvm use ${NODE_VERSION} \
|
&& nvm use ${NODE_VERSION} \
|
||||||
@ -401,8 +462,9 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
|||||||
npm install -g bower \
|
npm install -g bower \
|
||||||
;fi \
|
;fi \
|
||||||
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
|
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
|
||||||
npm install -g vue-cli \
|
npm install -g @vue/cli \
|
||||||
;fi \
|
;fi \
|
||||||
|
&& ln -s `npm bin --global` /home/laradock/.node-bin \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
# Wouldn't execute when added to the RUN statement in the above block
|
# Wouldn't execute when added to the RUN statement in the above block
|
||||||
@ -423,7 +485,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
|
|||||||
;fi
|
;fi
|
||||||
|
|
||||||
# Add PATH for node
|
# Add PATH for node
|
||||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
|
ENV PATH $PATH:/home/laradock/.node-bin
|
||||||
|
|
||||||
RUN if [ ${NPM_REGISTRY} ]; then \
|
RUN if [ ${NPM_REGISTRY} ]; then \
|
||||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
||||||
@ -459,6 +521,9 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
|
|||||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
# Add PATH for YARN
|
||||||
|
ENV PATH $PATH:/home/laradock/.yarn/bin
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# PHP Aerospike:
|
# PHP Aerospike:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -466,7 +531,6 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
|
|||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_AEROSPIKE=false
|
ARG INSTALL_AEROSPIKE=false
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
|
||||||
ARG AEROSPIKE_PHP_REPOSITORY
|
ARG AEROSPIKE_PHP_REPOSITORY
|
||||||
|
|
||||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||||
@ -476,16 +540,26 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|||||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
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 \
|
||||||
&& ( \
|
&& \
|
||||||
cd aerospike-client-php/src \
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
&& phpize \
|
( \
|
||||||
&& ./build.sh \
|
cd aerospike-client-php/src/aerospike \
|
||||||
&& make install \
|
&& phpize \
|
||||||
) \
|
&& ./build.sh \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
else \
|
||||||
|
( \
|
||||||
|
cd aerospike-client-php/src \
|
||||||
|
&& phpize \
|
||||||
|
&& ./build.sh \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
fi \
|
||||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||||
&& echo 'extension=aerospike.so' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
&& echo 'extension=aerospike.so' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -495,15 +569,14 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
|||||||
USER root
|
USER root
|
||||||
|
|
||||||
ARG INSTALL_V8JS=false
|
ARG INSTALL_V8JS=false
|
||||||
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 php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
|
&& apt-get install -y php${LARADOCK_PHP_VERSION}-xml php${LARADOCK_PHP_VERSION}-dev php-pear libv8-5.4 \
|
||||||
&& pecl install v8js \
|
&& pecl install v8js \
|
||||||
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
|
&& echo "extension=v8js.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -601,7 +674,6 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
|||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG INSTALL_MSSQL=false
|
ARG INSTALL_MSSQL=false
|
||||||
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 \
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
@ -616,25 +688,14 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
|||||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
||||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||||
apt-get update -yqq && \
|
apt-get update -yqq && \
|
||||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools unixodbc unixodbc-dev libgss3 odbcinst locales && \
|
||||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd && \
|
||||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
ln -sfn /opt/mssql-tools/bin/bcp /usr/bin/bcp && \
|
||||||
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 && \
|
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||||
locale-gen && \
|
locale-gen && \
|
||||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
pecl install sqlsrv pdo_sqlsrv && \
|
||||||
apt-get install -y locales && \
|
echo "extension=sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
echo "extension=pdo_sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||||
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 'sqlsrv' \
|
||||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||||
;fi \
|
;fi \
|
||||||
@ -666,7 +727,7 @@ ARG INSTALL_IMAGE_OPTIMIZERS=false
|
|||||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||||
apt-get install -y jpegoptim optipng pngquant gifsicle && \
|
apt-get install -y jpegoptim optipng pngquant gifsicle && \
|
||||||
if [ ${INSTALL_NODE} = true ]; then \
|
if [ ${INSTALL_NODE} = true ]; then \
|
||||||
. ~/.bashrc && npm install -g svgo \
|
exec bash && . ~/.bashrc && npm install -g svgo \
|
||||||
;fi\
|
;fi\
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
@ -741,7 +802,11 @@ ARG INSTALL_PG_CLIENT=false
|
|||||||
|
|
||||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||||
# Install the pgsql client
|
# Install the pgsql client
|
||||||
apt-get -y install postgresql-client \
|
apt-get install wget \
|
||||||
|
&& add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" \
|
||||||
|
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get -y install postgresql-client-10 \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
@ -779,13 +844,30 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
|||||||
&& rm chromedriver_linux64.zip \
|
&& rm chromedriver_linux64.zip \
|
||||||
;fi
|
;fi
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Phalcon:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_PHALCON=false
|
||||||
|
ARG LARADOCK_PHALCON_VERSION
|
||||||
|
ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION}
|
||||||
|
|
||||||
|
RUN if [ $INSTALL_PHALCON = true ]; then \
|
||||||
|
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c \
|
||||||
|
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${LARADOCK_PHALCON_VERSION}.zip \
|
||||||
|
&& unzip -d /tmp/ /tmp/cphalcon.zip \
|
||||||
|
&& cd /tmp/cphalcon-${LARADOCK_PHALCON_VERSION}/build \
|
||||||
|
&& ./install \
|
||||||
|
&& echo "extension=phalcon.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini \
|
||||||
|
&& ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-phalcon.ini \
|
||||||
|
&& rm -rf /tmp/cphalcon* \
|
||||||
|
;fi
|
||||||
|
|
||||||
###########################################################################
|
###########################################################################
|
||||||
# Check PHP version:
|
# Check PHP version:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
ARG PHP_VERSION=${PHP_VERSION}
|
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||||
|
|
||||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#--------------------------------------------------------------------------
|
#--------------------------------------------------------------------------
|
||||||
|
@ -50,7 +50,7 @@ alias cla="clear && ls -l"
|
|||||||
alias cll="clear && ls -la"
|
alias cll="clear && ls -la"
|
||||||
alias cls="clear && ls"
|
alias cls="clear && ls"
|
||||||
alias code="cd /var/www"
|
alias code="cd /var/www"
|
||||||
alias ea="vi ~/aliases"
|
alias ea="vi ~/aliases.sh"
|
||||||
|
|
||||||
# Always enable colored `grep` output
|
# Always enable colored `grep` output
|
||||||
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.
|
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.
|
||||||
@ -68,7 +68,7 @@ alias fresh="php artisan migrate:fresh"
|
|||||||
alias migrate="php artisan migrate"
|
alias migrate="php artisan migrate"
|
||||||
alias refresh="php artisan migrate:refresh"
|
alias refresh="php artisan migrate:refresh"
|
||||||
alias rollback="php artisan migrate:rollback"
|
alias rollback="php artisan migrate:rollback"
|
||||||
alias seed="php artisan:seed"
|
alias seed="php artisan db:seed"
|
||||||
alias serve="php artisan serve --quiet &"
|
alias serve="php artisan serve --quiet &"
|
||||||
|
|
||||||
alias phpunit="./vendor/bin/phpunit"
|
alias phpunit="./vendor/bin/phpunit"
|
||||||
|
@ -1 +1 @@
|
|||||||
* * * * * laradock php /var/www/artisan schedule:run >> /dev/null 2>&1
|
* * * * * laradock /usr/bin/php /var/www/artisan schedule:run >> /dev/null 2>&1
|
||||||
|
Reference in New Issue
Block a user