Compare commits

...

96 Commits
v9.7 ... v10.1

Author SHA1 Message Date
6c942b454b Merge pull request #2631 from bestlong/php-worker-imagick
php-worker support imagick
2020-06-17 07:53:10 +08:00
d81f9f2779 php-worker support imagick 2020-06-17 00:30:07 +08:00
1dd23a01a5 Merge pull request #2630 from bestlong/xmlrpc
support php-xmlrpc extension
2020-06-17 00:26:31 +08:00
35081fd9be support php-xmlrpc extension 2020-06-17 00:05:03 +08:00
12ade0d730 Merge pull request #2622 from yosoyfunes/patch-1
Update docker-compose.yml
2020-06-13 00:29:13 +08:00
89ee774ece Update docker-compose.yml
Increment nofile, check the documentation: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_increase_ulimits_for_nofile_and_nproc
2020-06-12 12:14:10 -03:00
f2209eeb72 Merge pull request #2582 from kideny/master
update support phalcon4.X version
2020-06-06 17:36:27 +08:00
6712bdcfa9 Merge pull request #2609 from tancou/gitlab-ci
Remove deprecated gitlab ci file
2020-06-06 17:35:23 +08:00
9df698e011 Merge pull request #2613 from m-elewa/develop
Update Traefik image to v2.2
2020-06-06 16:59:16 +08:00
5b0d264b6c Merge pull request #2614 from m-elewa/feature/update-netdata-image
update netdata image to the latest version of the official image
2020-06-06 16:57:24 +08:00
bc9825d398 update netdata image to the latest version of the official image 2020-05-31 14:44:09 +00:00
b5419c352d change port variables from nginx to trafik 2020-05-31 07:43:41 +00:00
227591cfb5 update documentation for Traefik v2.2 2020-05-31 07:13:13 +00:00
90ba6df3ad update traefik to v2.2 2020-05-31 07:07:05 +00:00
4f7ab34a6b Merge pull request #2607 from acidicyemi/master
fixed supervisor docker-composer instead of docker-compose syntax error
2020-05-30 17:15:14 +08:00
bc3a35fd60 Merge pull request #2605 from jzonta/master
Fixed error with memcached when running php-worker
2020-05-30 14:31:31 +08:00
131025be44 Merge pull request #2606 from jzonta/add-oci8-php-worker
Added support for OCI8 extension in php-worker
2020-05-30 14:30:13 +08:00
ae58620386 Merge pull request #2608 from tancou/add-imap-worker-support
Adding support for IMAP on php-worker
2020-05-30 14:28:41 +08:00
b8a1690bc3 Remove deprecated gitlab ci file 2020-05-29 18:13:20 +02:00
9d10b5a7ef Adding support for IMAP on php-worker 2020-05-29 16:30:02 +02:00
959329c241 fixed supervisor type syntax error 2020-05-29 02:41:39 +01:00
0792766d41 Added support for OCI8 extension in php-worker, Sugestão do amigo @bestlong in #2276 2020-05-28 13:37:01 -03:00
8477ca86f5 Fixed error with memcached when running php-worker 2020-05-28 09:50:30 -03:00
6b16f2b479 Merge pull request #2602 from norieli/patch-1
fixed mongodb can not authentication
2020-05-27 13:41:34 +08:00
f4d5a892b1 fixed mongodb can not authentication
The SCRAM_SHA_256 authentication mechanism requires libmongoc built with ENABLE_SSL. But current versio not support.
2020-05-22 13:43:25 +08:00
bad5f69379 Merge pull request #2595 from bestlong/fix-2576-bug
workspace expose angular cli serve port
2020-05-21 09:55:53 +08:00
667bfc5e1b workspace expose angular cli serve port 2020-05-21 09:40:36 +08:00
d39f793f34 Merge pull request #2594 from bestlong/horizon-php-ext-imagick
Horizon support ImageMagick
2020-05-21 09:31:35 +08:00
f910f944da Merge pull request #2576 from Yiidiir/patch-1
Expose Angular CLI serve port
2020-05-21 09:16:28 +08:00
941ad16cbe Merge pull request #2567 from carlosclayton/master
Installing Filebeat plugin
2020-05-21 09:15:05 +08:00
e5f5bc86fe Merge pull request #2572 from pgrimaud/master
Fix typos
2020-05-21 09:14:35 +08:00
cca6bead21 Merge pull request #2593 from makowskid/pnpm-support
Adding pnpm support
2020-05-21 09:13:56 +08:00
a85e9c4507 Horizon support ImageMagick
fix #2296
2020-05-21 09:09:38 +08:00
a074389e28 pnpm support - documentation 2020-05-20 15:08:46 +08:00
fabb36abbb Adding support for PNPM
more info here https://pnpm.js.org/en/installation
2020-05-20 14:58:31 +08:00
822c383626 Merge pull request #2590 from m-elewa/develop
update Laravel envoy to v2
2020-05-14 15:29:26 +08:00
7c4d9c908c update laravel envoy to v2 2020-05-13 20:52:25 +02:00
24c02ec1cf fixed 2020-05-02 03:07:29 +08:00
35a7fc204c update support phalcon4.X version 2020-05-01 00:57:27 +08:00
4f274e3d86 replace github usernames with users real names in related projects 2020-04-29 18:42:31 +02:00
5824676e30 Improve docs readability & performance 2020-04-29 07:10:47 +02:00
d2823c0f8a Merge pull request #2577 from sfx101/patch-1 2020-04-29 04:18:39 +02:00
4797c38199 Added DockerStacks link to related projects 2020-04-28 10:29:25 +05:30
5a28b9c4d8 Expose Angular CLI serve port
When enabling angular, exposure to the default serve port is not done normally like it's done with VUE CLI
2020-04-28 03:12:26 +01:00
2fd9ccff6a Fix typos 2020-04-24 01:16:34 +02:00
1dd78c0b04 Installing Filebeat plugin
Add support to Filebeat with logstash-input-beats plugin
2020-04-20 08:00:13 -03:00
b6e11624fe Merge pull request #2565 from bestlong/change-base-image
php-fpm/workspace use latest base image
2020-04-17 17:33:48 +08:00
aa325b5218 Merge pull request #2564 from laradock/actions-ci
use Actions run CI
2020-04-17 14:56:16 +08:00
56e10f1198 Update main-ci.yml 2020-04-17 14:03:08 +08:00
fbaaff619a Update main-ci.yml 2020-04-17 13:14:06 +08:00
941960df82 Update main-ci.yml 2020-04-17 13:12:57 +08:00
e2331171b0 use Github Actions run CI 2020-04-17 13:10:40 +08:00
a2581bda5f use latest base image 2020-04-17 11:57:50 +08:00
9a32cd2379 Merge pull request #2555 from jeremynikolic/master
Add ElasticSearch plugin command alternative
2020-04-15 10:30:09 +08:00
102d3c8828 Add ElasticSearch plugin command alternative for ES >5.0 versions 2020-04-10 10:15:58 +02:00
3f71fc2c15 Merge pull request #2550 from leowangxp/master
fix: change sources shell permission denied
2020-04-08 14:32:27 +08:00
c4c2f91306 fix: change sources shell permission denied 2020-04-08 09:57:00 +08:00
9e04c460f9 Merge pull request #2527 from lbssousa/browsersync-ports
Added option to map Browsersync ports from workspace container
2020-04-07 08:56:10 +08:00
dc0d970e2a Merge pull request #2533 from dbfun/feature-oh-my-zsh
new feature: Install Oh My ZSH! with Laravel autocomplete plugin
2020-04-07 08:55:19 +08:00
c5c8c9bc85 new feature: Install Oh My ZSH! with Laravel autocomplete plugin 2020-03-13 03:16:39 +03:00
123e52e563 Merge pull request #2511 from metalcamp/fix/mysql-client-installation-candidate
Fix: Mysql-client has no installation candidate
2020-03-12 10:14:10 +08:00
62747a2870 Update Dockerfile
php-worker fix add package name
2020-03-12 09:39:45 +08:00
c32bf95530 Merge pull request #2519 from GinoPane/bugfix/#2506
Fix #2506
2020-03-04 14:28:51 +08:00
29f7cbdc7e Added option to map Browsersync ports from workspace container 2020-03-03 15:41:54 -03:00
8cde247422 Merge pull request #2521 from bagart/patch-1
Laradock Multi
2020-02-27 10:39:15 +01:00
5a78f09eb4 Update index.md
add Laradock Multi
2020-02-26 09:40:06 +03:00
e8dbb0e0f1 Fix #2506
Updates:
- AST extension is no longer installed for unsupported PHP versions
2020-02-25 22:26:03 +03:00
33828f81bf Merge pull request #2516 from laradock/php-gd-ext
php worker horizon support gd ext.
2020-02-24 17:32:52 +08:00
a406335efe Merge pull request #2515 from laradock/horizon-zip
horizon zip ext.
2020-02-24 14:39:31 +08:00
18ca604537 php worker horizon support gd ext. 2020-02-24 13:53:54 +08:00
51ff09c187 horizon zip ext. 2020-02-24 13:31:52 +08:00
cb574599ca fix: mysql-client has no installation candidate 2020-02-19 12:44:06 +01:00
6a92eb0d58 Merge pull request #2510 from metalcamp/fix/mysql-auth
Fix: Use native MySQL password as default auth
2020-02-19 08:22:23 +08:00
8f411417f5 fix: use native mysql password as default auth
fixes connection refused errors described here: 
https://github.com/laradock/laradock/issues/1752
https://github.com/laradock/laradock/issues/2105
2020-02-18 19:37:00 +01:00
127d48655c Merge pull request #2509 from laradock/fix-php2-ext
fix php7.4 ssh2 extension.
2020-02-18 15:38:59 +08:00
884e481c0c fix php7.4 ssh2 extension. 2020-02-18 13:45:23 +08:00
833a91d8f8 Merge pull request #2508 from laradock/php70-xdebug
xdebug drop support php7.0
2020-02-18 13:22:37 +08:00
6eeb0c8388 xdebug drop support php7.0 2020-02-18 09:56:45 +08:00
c073ebefbb Merge pull request #2222 from zack6849/patch-1
Add en_US.UTF-8 to the default list of extra locales
2020-02-18 08:59:30 +08:00
7a2370ba77 Merge branch 'master' into patch-1 2020-02-18 08:58:55 +08:00
258912eac2 Merge pull request #2487 from bumbummen99/master
Dedicated user/group id for Horizon
2020-02-18 08:56:21 +08:00
9de9e8ed04 Merge pull request #2469 from DGeoWils/master
Added wkhtmltopdf installation to both Workspace and PHP-FPM
2020-02-18 08:55:57 +08:00
081e65d192 Merge pull request #2504 from vlauciani/master
fix TLS docker-dind problem from version 18.09+
2020-02-18 08:50:15 +08:00
93f137ce12 Merge pull request #2501 from lbssousa/workspace-vue-cli-ports
Added option to map vue-cli ports from workspace container
2020-02-18 08:48:35 +08:00
ec7d91a658 Merge pull request #2505 from 99linesofcode/sensible-xdebug-default-configuration
XDebug - Default to host.docker.internal
2020-02-18 08:47:01 +08:00
ab4e06f270 Default to host.docker.internal 2020-02-14 15:15:04 +01:00
3124ad8d76 Update docker-compose.yml 2020-02-13 23:26:33 +01:00
8e6a2a4f3c Update docker-in-docker (dind) - not working with 18.09+ version 2020-02-13 23:24:07 +01:00
4dd4074d3b Merge pull request #1 from laradock/master
Synck fork
2020-02-13 23:09:45 +01:00
9ad5063d4a Merge branch 'master' into workspace-vue-cli-ports 2020-02-13 23:33:05 +08:00
3fe18368bd Added option to map vue-cli ports from workspace container 2020-02-11 15:27:07 -03:00
f3f3dfa724 Add group/user id setting to horizon .env section 2020-02-01 15:20:02 +01:00
e14e5b7caf Fix bad style 2020-02-01 15:18:36 +01:00
711b2e7449 Updated documentation with wkhtmltopdf section 2020-01-15 13:44:53 -05:00
8ecd35d2e9 Added wkhtmltopdf installation to both Workspace and PHP-FPM 2020-01-15 12:01:35 -05:00
c4a99cce57 Add en_US.UTF-8 to the default list of extra locales
Feel free to decline this, but I thought maybe adding US English to the default list of extra locales may be beneficial?
2019-08-02 09:02:52 -04:00
59 changed files with 738 additions and 259 deletions

1
.github/FUNDING.yml vendored
View File

@ -3,3 +3,4 @@
github: Mahmoudz
open_collective: laradock
custom: ['paypal.me/mzmmzz']
patreon: zalt

19
.github/workflows/main-ci.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
php_version: ["7.1", "7.2", "7.3", "7.4"]
service: [php-fpm, php-worker, workspace, laravel-horizon]
steps:
- uses: actions/checkout@v2
- name: Build the Docker image
env:
PHP_VERSION: ${{ matrix.php_version }}
run: |
cp env-example .env
docker-compose build ${{ matrix.service }}

View File

@ -1,62 +0,0 @@
# image: docker:latest
# services:
# - docker:dind
image: jonaskello/docker-and-compose:1.12.1-1.8.0
services:
- docker:1.12.1-dind
before_script:
- docker info
- docker-compose version
- cp env-example .env
- sed -i -- "s/=false/=true/g" .env
- cat .env
- env | sort
build:5.6:php-fpm:
variables:
PHP_VERSION: "5.6"
script:
- docker-compose build php-fpm
build:7.0:php-fpm:
variables:
PHP_VERSION: "7.0"
script:
- docker-compose build php-fpm
build:7.1:php-fpm:
variables:
PHP_VERSION: "7.1"
script:
- docker-compose build php-fpm
build:7.2:php-fpm:
variables:
PHP_VERSION: "7.2"
script:
- docker-compose build php-fpm
build:5.6:workspace:
variables:
PHP_VERSION: "5.6"
script:
- docker-compose build workspace
build:7.0:workspace:
variables:
PHP_VERSION: "7.0"
script:
- docker-compose build workspace
build:7.1:workspace:
variables:
PHP_VERSION: "7.1"
script:
- docker-compose build workspace
build:7.2:workspace:
variables:
PHP_VERSION: "7.2"
script:
- docker-compose build workspace

View File

@ -20,8 +20,8 @@ googleAnalytics = "UA-37514928-9"
repo_url = "https://github.com/laradock/laradock"
version = ""
logo = "images/logo.png"
favicon = ""
logo = "images/favicons/ms-icon-310x310.png"
favicon = "images/favicons/favicon.ico"
permalink = "#"
@ -48,40 +48,35 @@ googleAnalytics = "UA-37514928-9"
# ------- MENU START -----------------------------------------
[[menu.main]]
name = "1. Introduction"
name = "Introduction"
url = "introduction/"
weight = 1
[[menu.main]]
name = "2. Getting Started"
name = "Getting Started"
url = "getting-started/"
weight = 2
[[menu.main]]
name = "3. Documentation"
name = "Documentation"
url = "documentation/"
weight = 3
[[menu.main]]
name = "4. Help & Questions"
name = "Help & Questions"
url = "help/"
weight = 4
[[menu.main]]
name = "5. Related Projects"
name = "Related Projects"
url = "related-projects/"
weight = 5
[[menu.main]]
name = "6. Contributing"
name = "Contributions"
url = "contributing/"
weight = 6
[[menu.main]]
name = "7. License"
url = "license/"
weight = 7
# ------- MENU END -----------------------------------------
[blackfriday]

View File

@ -1,7 +1,7 @@
---
title: 7. Contributing
title: Contributions
type: index
weight: 7
weight: 6
---
@ -51,12 +51,20 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
### Host the documentation locally
**Option 1: Use Hugo Docker Image:**
1. Update the `DOCUMENTATION/content`.
2. Go to `DOCUMENTATION/`.
3. Run `docker run --rm -it -v $PWD:/src -p 1313:1313 -u hugo jguyomard/hugo-builder hugo server -w --bind=0.0.0.0`
4. Visit [http://localhost:1313/](http://localhost:1313/)
**Option 2: Install Hugo Locally:**
1. Install [Hugo](https://gohugo.io/) on your machine.
2. Edit the `DOCUMENTATION/content`.
2. Update the `DOCUMENTATION/content`.
3. Delete the `/docs` folder from the root.
4. After you finish the editing, go to `DOCUMENTATION/` and run the `hugo` command to generate the HTML docs (inside a new `/docs` folder).
4. Go to `DOCUMENTATION/`.
5. Run the `hugo` command to generate the HTML docs inside a new `/docs` folder.
## Support new Software (Add new Container)
@ -100,7 +108,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
* Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source..
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other organizations.*
*Most of the image in Laradock are official images, these projects live in other repositories and maintainer by other organizations.*
**Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine.

View File

@ -1,5 +1,5 @@
---
title: 3. Documentation
title: Documentation
type: index
weight: 3
---
@ -57,7 +57,9 @@ docker-compose down
<br>
<a name="Enter-Container"></a>
## Enter a Container (run commands in a running Container)
## Enter a Container
> Run commands in a running Container.
1 - First list the current running containers with `docker ps`
@ -88,7 +90,8 @@ docker-compose exec mysql mysql -udefault -psecret
<br>
<a name="Edit-Container"></a>
## Edit default container configuration
## Edit default Container config
Open the `docker-compose.yml` and change anything you want.
Examples:
@ -161,7 +164,7 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
<br>
<a name="Add-Docker-Images"></a>
## Add more Software (Docker Images)
## Add more Docker Images
To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
@ -384,7 +387,9 @@ Always download the latest version of [Loaders for ionCube ](http://www.ioncube.
<br>
<a name="Install-Deployer"></a>
## Install Deployer (Deployment tool for PHP)
## Install Deployer
> A deployment tool for PHP.
1 - Open the `.env` file
<br>
@ -402,7 +407,10 @@ Always download the latest version of [Loaders for ionCube ](http://www.ioncube.
<br>
<a name="Install-SonarQube"></a>
## Install SonarQube (automatic code review tool)
## Install SonarQube
> An automatic code review tool.
SonarQube® is an automatic code review tool to detect bugs, vulnerabilities and code smells in your code. It can integrate with your existing workflow to enable continuous code inspection across your project branches and pull requests.
<br>
1 - Open the `.env` file
@ -463,14 +471,6 @@ To learn more about how Docker publishes ports, please read [this excellent post
<br>
<a name="Digital-Ocean"></a>
## Setup Laravel and Docker on Digital Ocean
### [Full Guide Here](/guides/#Digital-Ocean)
@ -483,7 +483,7 @@ To learn more about how Docker publishes ports, please read [this excellent post
<a name="Install-Laravel"></a>
## Install Laravel from a Docker Container
## Install Laravel from Container
1 - First you need to enter the Workspace Container.
@ -560,8 +560,14 @@ composer update
```bash
phpunit
```
```
vue serve
```
(browse the results at `http://localhost:[WORKSPACE_VUE_CLI_SERVE_HOST_PORT]`)
```
vue ui
```
(browse the results at `http://localhost:[WORKSPACE_VUE_CLI_UI_HOST_PORT]`)
@ -611,6 +617,33 @@ docker-compose up -d php-worker
<br>
<a name="Use-Browsersync-With-Laravel-Mix"></a>
## Use Browsersync
> Using Use Browsersync with Laravel Mix.
1. Add the following settings to your `webpack.mix.js` file. Please refer to Browsersync [Options](https://browsersync.io/docs/options) page for more options.
```
const mix = require('laravel-mix')
(...)
mix.browserSync({
open: false,
proxy: 'nginx' // replace with your web server container
})
```
2. Run `npm run watch` within your `workspace` container.
3. Open your browser and visit address `http://localhost:[WORKSPACE_BROWSERSYNC_HOST_PORT]`. It will refresh the page automatically whenever you edit any source file in your project.
4. If you wish to access Browsersync UI for your project, visit address `http://localhost:[WORKSPACE_BROWSERSYNC_UI_HOST_PORT]`.
<br>
<a name="Use-Mailu"></a>
## Use Mailu
@ -787,20 +820,20 @@ Read the [Laravel official documentation](https://laravel.com/docs/5.7/redis#con
## Use Varnish
The goal was to proxy request to varnish server using nginx. So only nginx has been configured for Varnish proxy.
Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`).
Nginx is on port 80 or 443. Nginx sends request through varnish server and varnish server sends request back to nginx on port 81 (external port is defined in `VARNISH_BACKEND_PORT`).
The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/)
The idea was taken from this [post](https://www.linode.com/docs/websites/varnish/use-varnish-and-nginx-to-serve-wordpress-over-ssl-and-http-on-debian-8/)
The Varnish configuration was developed and tested for Wordpress only. Probably it works with other systems.
#### Steps to configure varnish proxy server:
1. You have to set domain name for VARNISH_PROXY1_BACKEND_HOST variable.
2. If you want to use varnish for different domains, you have to add new configuration section in your env file.
```
```
VARNISH_PROXY1_CACHE_SIZE=128m
VARNISH_PROXY1_BACKEND_HOST=replace_with_your_domain.name
VARNISH_PROXY1_SERVER=SERVER1
```
```
3. Then you have to add new config section into docker-compose.yml with related variables:
```
custom_proxy_name:
@ -822,7 +855,7 @@ The Varnish configuration was developed and tested for Wordpress only. Probably
- workspace
networks:
- frontend
```
```
4. change your varnish config and add nginx configuration. Example Nginx configuration is here: `nginx/sites/laravel_varnish.conf.example`.
5. `varnish/default.vcl` is old varnish configuration, which was used in the previous version. Use `default_wordpress.vcl` instead.
@ -1178,6 +1211,12 @@ docker-compose up -d elasticsearch
```bash
docker-compose exec elasticsearch /usr/share/elasticsearch/bin/plugin install {plugin-name}
```
For ElasticSearch 5.0 and above, the previous "plugin" command as been renamed to "elasticsearch-plguin".
Use the following instead:
```bash
docker-compose exec elasticsearch /usr/share/elasticsearch/bin/elasticsearch-plugin install {plugin-name}
```
2 - Restart elasticsearch container
@ -1386,30 +1425,13 @@ GRAYLOG_SHA256_PASSWORD=b1cb6e31e172577918c9e7806c572b5ed8477d3f57aa737bee4b5b1d
<a name="Use-Traefik"></a>
## Use Traefik
To use Traefik you need to do some changes in `traefik/trafik.toml` and `docker-compose.yml`.
To use Traefik you need to do some changes in `.env` and `docker-compose.yml`.
1 - Open `traefik.toml` and change the `e-mail` property in `acme` section.
1 - Open `.env` and change `ACME_DOMAIN` to your domain and `ACME_EMAIL` to your email.
2 - Change your domain in `acme.domains`. For example: `main = "example.org"`
2 - You need to change the `docker-compose.yml` file to match the Traefik needs. If you want to use Traefik, you must not expose the ports of each container to the internet, but specify some labels.
2.1 - If you have subdomains, you must add them to `sans` property in `acme.domains` section.
```bash
[[acme.domais]]
main = "example.org"
sans = ["monitor.example.org", "pma.example.org"]
```
3 - If you need to add basic authentication (https://docs.traefik.io/configuration/entrypoints/#basic-authentication), you just need to add the following text after `[entryPoints.https.tls]`:
```bash
[entryPoints.https.auth.basic]
users = ["user:password"]
```
4 - You need to change the `docker-compose.yml` file to match the Traefik needs. If you want to use Traefik, you must not expose the ports of each container to the internet, but specify some labels.
4.1 For example, let's try with NGINX. You must have:
2.1 For example, let's try with NGINX. You must have:
```bash
nginx:
@ -1429,9 +1451,25 @@ nginx:
- frontend
- backend
labels:
- traefik.backend=nginx
- traefik.frontend.rule=Host:example.org
- traefik.port=80
- "traefik.enable=true"
- "traefik.http.services.nginx.loadbalancer.server.port=80"
# https router
- "traefik.http.routers.https.rule=Host(`${ACME_DOMAIN}`, `www.${ACME_DOMAIN}`)"
- "traefik.http.routers.https.entrypoints=https"
- "traefik.http.routers.https.middlewares=www-redirectregex"
- "traefik.http.routers.https.service=nginx"
- "traefik.http.routers.https.tls.certresolver=letsencrypt"
# http router
- "traefik.http.routers.http.rule=Host(`${ACME_DOMAIN}`, `www.${ACME_DOMAIN}`)"
- "traefik.http.routers.http.entrypoints=http"
- "traefik.http.routers.http.middlewares=http-redirectscheme"
- "traefik.http.routers.http.service=nginx"
# middlewares
- "traefik.http.middlewares.www-redirectregex.redirectregex.permanent=true"
- "traefik.http.middlewares.www-redirectregex.redirectregex.regex=^https://www.(.*)"
- "traefik.http.middlewares.www-redirectregex.redirectregex.replacement=https://$$1"
- "traefik.http.middlewares.http-redirectscheme.redirectscheme.permanent=true"
- "traefik.http.middlewares.http-redirectscheme.redirectscheme.scheme=https"
```
instead of
@ -1694,7 +1732,9 @@ The default username and password for the root MySQL user are `root` and `root `
<br>
<a name="Create-Multiple-Databases"></a>
## Create Multiple Databases (MySQL)
## Create Multiple Databases
> With MySQL.
Create `createdb.sql` from `mysql/docker-entrypoint-initdb.d/createdb.sql.example` in `mysql/docker-entrypoint-initdb.d/*` and add your SQL syntax as follow:
@ -1728,7 +1768,9 @@ If you need <a href="#MySQL-access-from-host">MySQL access from your host</a>, d
<br>
<a name="Use-custom-Domain"></a>
## Use custom Domain (instead of the Docker IP)
## Use custom Domain
> How to use a custom domain, instead of the Docker IP.
Assuming your custom domain is `laravel.test`
@ -1754,7 +1796,7 @@ server_name laravel.test;
<br>
<a name="Enable-Global-Composer-Build-Install"></a>
## Enable Global Composer Build Install
## Global Composer Build Install
Enabling Global Composer Install during the build for the container allows you to get your composer requirements installed and available in the container after the build is done.
@ -1773,7 +1815,9 @@ Enabling Global Composer Install during the build for the container allows you t
<br>
<a name="Magento-2-authentication-credentials"></a>
## Add authentication credential for Magento 2
## Add authentication for Magento
> Adding authentication credentials for Magento 2.
1 - Open the `.env` file
@ -1825,6 +1869,23 @@ To install NVM and NodeJS in the Workspace container
<br>
<a name="Install-PNPM"></a>
## Install PNPM
pnpm uses hard links and symlinks to save one version of a module only ever once on a disk. When using npm or Yarn for example, if you have 100 projects using the same version of lodash, you will have 100 copies of lodash on disk. With pnpm, lodash will be saved in a single place on the disk and a hard link will put it into the node_modules where it should be installed.
As a result, you save gigabytes of space on your disk and you have a lot faster installations! If you'd like more details about the unique node_modules structure that pnpm creates and why it works fine with the Node.js ecosystem.
More info here: https://pnpm.js.org/en/motivation
1 - Open the `.env` file
2 - Search for the `WORKSPACE_INSTALL_NODE` and `WORKSPACE_INSTALL_PNPM` argument under the Workspace Container and set it to `true`
3 - Re-build the container `docker-compose build workspace`
@ -1865,7 +1926,7 @@ To install NPM GULP toolkit in the Workspace container
<br>
<a name="Install-NPM-BOWER"></a>
## Install NPM BOWER package manager
## Install NPM BOWER
To install NPM BOWER package manager in the Workspace container
@ -1890,7 +1951,11 @@ To install NPM VUE CLI in the Workspace container
2 - Search for the `WORKSPACE_INSTALL_NPM_VUE_CLI` argument under the Workspace Container and set it to `true`
3 - Re-build the container `docker-compose build workspace`
3 - Change `vue serve` port using `WORKSPACE_VUE_CLI_SERVE_HOST_PORT` if you wish to (default value is 8080)
4 - Change `vue ui` port using `WORKSPACE_VUE_CLI_UI_HOST_PORT` if you wish to (default value is 8001)
5 - Re-build the container `docker-compose build workspace`
@ -1946,7 +2011,21 @@ To install FFMPEG in the Workspace container
**PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise the you'll get an error when running the `php-ffmpeg` binary.
<br>
<a name="Install-wkhtmltopdf"></a>
## Install wkhtmltopdf
[wkhtmltopdf](https://wkhtmltopdf.org/) is a utility for outputting a PDF from HTML
To install wkhtmltopdf in the Workspace container
1 - Open the `.env` file
2 - Search for the `WORKSPACE_INSTALL_WKHTMLTOPDF` argument under the Workspace Container and set it to `true`
3 - Re-build the container `docker-compose build workspace`
**PS** Don't forget to install the binary in the `php-fpm` container too by applying the same steps above to its container, otherwise the you'll get an error when running the `wkhtmltopdf` binary.
@ -1987,7 +2066,7 @@ To install Supervisor in the Workspace container
3 - Create supervisor configuration file (for ex., named `laravel-worker.conf`) for Laravel Queue Worker in `php-worker/supervisord.d/` by simply copy from `laravel-worker.conf.example`
4 - Re-build the container `docker-compose build workspace` Or `docker-composer up --build -d workspace`
4 - Re-build the container `docker-compose build workspace` Or `docker-compose up --build -d workspace`
@ -2033,7 +2112,9 @@ e) set it to `true`
<br>
<a name="Install-Laravel-Envoy"></a>
## Install Laravel Envoy (Envoy Task Runner)
## Install Laravel Envoy
> A Tasks Runner.
1 - Open the `.env` file
<br>
@ -2066,7 +2147,8 @@ e) set it to `true`
<br>
<a name="Install-Faketime"></a>
## Install libfaketime in the php-fpm container
## Install libfaketime in php-fpm
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:
@ -2090,7 +2172,8 @@ will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for m
<br>
<a name="Install-YAML"></a>
## Install YAML PHP extension in the php-fpm container
## Install YAML extension in php-fpm
YAML PHP extension allows you to easily parse and create YAML structured data. I like YAML because it's well readable for humans. See http://php.net/manual/en/ref.yaml.php and http://yaml.org/ for more info.
1 - Open the `.env` file
@ -2138,8 +2221,29 @@ A bash prompt that displays information about the current git repository. In par
**Note** You can configure bash-git-prompt by editing the `workspace/gitprompt.sh` file and re-building the workspace container.
For configuration information, visit the [bash-git-prompt repository](https://github.com/magicmonty/bash-git-prompt).
<br>
<a name="Install-Oh-My-Zsh"></a>
## Install Oh My ZSH
> With the Laravel autocomplete plugin.
[Zsh](https://en.wikipedia.org/wiki/Z_shell) is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.
[Oh My Zsh](https://ohmyz.sh/) is a delightful, open source, community-driven framework for managing your Zsh configuration.
[Laravel autocomplete plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/laravel) adds aliases and autocompletion for Laravel Artisan and Bob command-line interfaces.
1 - Open the `.env` file
2 - Search for the `SHELL_OH_MY_ZSH` argument under the Workspace Container
3 - Set it to `true`
4 - Re-build the container `docker-compose build workspace`
5 - Use it `docker-compose exec --user=laradock workspace zsh`
**Note** You can configure Oh My ZSH by editing the `/home/laradock/.zshrc` in running container.
<br>
<a name="phpstorm-debugging"></a>
@ -2152,7 +2256,9 @@ Remote debug Laravel web and phpunit tests.
<br>
<a name="Setup-gcloud"></a>
## Setup Google Cloud for docker registry
## Setup Google Cloud
> Setting up Google Cloud for the docker registry.
```
gcloud auth configure-docker
@ -2168,7 +2274,7 @@ gcloud auth login
<br>
<a name="keep-tracking-Laradock"></a>
## Keep track of your Laradock changes
## Track your Laradock changes
1. Fork the Laradock repository.
2. Use that fork as a submodule.

View File

@ -1,18 +1,18 @@
---
title: 2. Getting Started
title: Getting Started
type: index
weight: 2
---
## 2.1 Requirements
## Requirements
- [Git](https://git-scm.com/downloads)
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
- [Docker](https://www.docker.com/products/docker/) [ >= 17.12 ]
## 2.2 Installation
## Installation
Choose the setup the best suits your needs.
@ -44,10 +44,10 @@ Note: If you are not using Git yet for your project, you can use `git clone` ins
2 - Make sure your folder structure should look like this:
```
+ project-a
+ laradock-a
+ project-b
+ laradock-b
* project-a
* laradock-a
* project-b
* laradock-b
```
*(It's important to rename the laradock folders to unique name in each project, if you want to run laradock per project).*
@ -66,8 +66,8 @@ git clone https://github.com/laradock/laradock.git
Your folder structure should look like this:
```
+ laradock
+ project-z
* laradock
* project-z
```
2 - Edit your web server sites configuration.
@ -102,9 +102,9 @@ git clone https://github.com/laradock/laradock.git
Your folder structure should look like this:
```
+ laradock
+ project-1
+ project-2
* laradock
* project-1
* project-2
```
2 - Go to your web server and create config files to point to different project directory when visiting different domains:
@ -136,7 +136,7 @@ If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://
<a name="Usage"></a>
## 2.3 Usage
## Usage
**Read Before starting:**

View File

@ -1,7 +1,7 @@
---
title: 5. Help & Questions
title: Help & Questions
type: index
weight: 5
weight: 4
---
Join the chat room on [Gitter](https://gitter.im/Laradock/laradock) and get help and support from the community.

View File

@ -1,13 +1,18 @@
---
title: 1. Introduction
title: Introduction
type: index
weight: 1
---
<b>Laradock is a full PHP development environment based on Docker.</b>
<b>Laradock</b> is a full PHP development environment for Docker.
Supporting a variety of common services, all pre-configured to provide a full PHP development environment.
It supports a variety of common services, all pre-configured to provide a ready PHP development environment.
<br>
---
### Use Docker First - Then Learn About It Later!</q>
---
<a name="features"></a>
## Features
@ -26,11 +31,9 @@ Supporting a variety of common services, all pre-configured to provide a full PH
- Everything is visible and editable.
- Fast Images Builds.
<br>
---
### Use Docker First - Then Learn About It Later</q>
---
## Quick Overview
@ -73,7 +76,7 @@ That's it! enjoy :)
<a name="Supported-Containers"></a>
## Supported Software (Docker Images)
## Supported Services
> Laradock, adheres to the 'separation of concerns' principle, thus it runs each software on its own Docker Container.
> You can turn On/Off as many instances as you want without worrying about the configurations.
@ -354,6 +357,8 @@ Contribute and help us sustain the project.
<b>Option 2:</b> Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
<br>
<b>Option 3:</b> Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute).
<br>
<b>Option 4:</b> Become a [Patreon](https://www.patreon.com/zalt).
<a name="sponsors"></a>
## Sponsors

View File

@ -1,7 +0,0 @@
---
title: 8. License
type: index
weight: 8
---
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT)

View File

@ -1,19 +1,49 @@
---
title: 6. Related Projects
title: Related Projects
type: index
weight: 6
weight: 5
---
Laradock related projects:
## Laradock Related Projects
* [Laradock CLI](https://github.com/lorinlee/laradock-cli) by [LorinLee](https://github.com/lorinlee)
* [Laradock Env](https://github.com/bagart/laradock_env) by [BAGArt](https://github.com/bagart)
* [Klaradock](https://github.com/poyhsiao/Klaradock) by [Kim Hsiao](https://github.com/poyhsiao)
* [Ansible Laradock Kubernetes](https://github.com/sifat-rahim/ansible-laradock-kubernetes) by [Sifat Rahim](https://github.com/sifat-rahim)
These Docker Compose projects have piqued our interest:
* [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal)
* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti)
* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea)
* [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek)
If you want your project listed here, please open an issue.
* [Docker Stacks](https://github.com/sfx101/docker-stacks): A GUI for managing Laradock. (by [Subhadip Naskar](https://github.com/sfx101))
* [Laradock CLI](https://github.com/lorinlee/laradock-cli): A CLI for managing Laradock. (by [Lorin Lee](https://github.com/lorinlee))
* [Laradock CLI](https://github.com/loonpwn/laradock-cli): A CLI for managing Laradock. (by [Harlan Wilton](https://github.com/loonpwn))
* [Ansible Laradock Kubernetes](https://github.com/sifat-rahim/ansible-laradock-kubernetes): Ansible playbook to setup docker containers for Laravel apps using Laradock. (by [Sifat Rahim](https://github.com/sifat-rahim))
* [Monitor Laradock](https://github.com/zeroc0d3/monitor-laradock): Laradock Monitoring Tools (using Grafana). (by [Dwi Fahni Denni](https://github.com/zeroc0d3))
* [Laradock Manager](https://github.com/Lyimmi/laradock-manager): A simple app for managing Laradock containers. Made with wails.app (go & vue.js & vuetify). (by [Zámbó Levente](https://github.com/Lyimmi))
* [Laradock Env](https://github.com/bagart/laradock_env): A wrapper with commands for managing Laradock. (by [BAG Art](https://github.com/bagart))
* [Lara Query](https://github.com/TanisukeGoro/laraQuery): Easy Laradock CLI. (by [Okita kamegoro](https://github.com/TanisukeGoro))
* [Laradock CLI](https://github.com/tonysm/laradock-cli): Laradock CLI helper. (by [Tony Messias](https://github.com/Tonysm))
* [Laradock Lite](https://github.com/yangliuyu/laradock-lite): A Docker based laravel development environment with minimal dependencies. (by [Liu Yang](https://github.com/yangliuyu))
* [Laradock Makefile](https://github.com/bazavlukd/laradock-makefile): Makefile with some useful commands for Laradock. (by [Dmitry Bazavluk](https://github.com/bazavlukd))
* [Laradock Build](https://github.com/dockerframework/laradock-build): Docker builder & running script for Laradock. (by [Docker Framework](https://github.com/dockerframework))
* [Laravel Laradock PHPStorm](https://github.com/LarryEitel/laravel-laradock-phpstorm): Guide for configuring PHPStorm for remote debugging with Laravel & Laradock. (by [Larry Eitel](https://github.com/LarryEitel))
* [Laradock Crudbooster](https://github.com/nutellinoit/laradock-crudbooster): Docker compose & Kubernetes solution to build apps with crudbooster & Laradock. (by [Samuele Chiocca](https://github.com/nutellinoit))
* [Laradock Sample](https://github.com/tadaken3/laradock-sample): Install Laravel with Laradock. (by [Tadaken3](https://github.com/tadaken3))
* [Stylemix's Laradock](https://github.com/stylemix/laradock): Alternate laradock for multiproject purpose. (by [Stylemix LLC](https://github.com/stylemix))
## Inspired by Laradock
* [Dockery](https://github.com/taufek/dockery): Laradock for Ruby. (by [Taufek Johar](https://github.com/Taufek))
* [RubyDev Dock](https://github.com/scudelletti/rubydev-dock): Laradock for Ruby. (by [Diogo Scudelletti](https://github.com/scudelletti))
* [NoDock](https://github.com/Osedea/nodock): Laradock for NodeJS. (by [Osedea](https://github.com/Osedea))
* [Laradock Multi](https://github.com/bagart/laradock-multi): Laradock for PHP & NodeJS. (by [BAG Art](https://github.com/bagart))
* [Wordpress Laradock](https://github.com/shov/wordpress-laradock): Laradock for Wordpress. (by [Alexandr Shevchenko](https://github.com/shov))
* [Yii2 Laradock](https://github.com/ydatech/yii2-laradock): Laradock for Yii2. (by [Yuda Sukmana](https://github.com/ydatech))
* [MageDock](https://github.com/ojhaujjwal/magedock): Laradock for Magento. (by [Ujjwal Ojha](https://github.com/ojhaujjwal))
* [Docker Codeigniter](https://github.com/sebastianlzy/docker-codeigniter): Laradock for Codeigniter. (by [Sebastian](https://github.com/sebastianlzy))
* [Klaradock](https://github.com/poyhsiao/Klaradock): A customized Laradock. (by [Kim Hsiao](https://github.com/poyhsiao))
* [Laravel Boilerplate](https://github.com/casivaagustin/laravel-boilerplate): A boilerplate with support for JWT. (by [Casiva Agustin](https://github.com/casivaagustin))
<br><br>
> Feel free to submit a PR for listing your project here.

View File

@ -36,6 +36,7 @@
{{ with .Site.Params.copyright }}
&copy; {{ $.Now.Format "2006" }} {{ . }} &ndash;
{{ end }}
<br><br>
Documentation built with
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
using the

View File

@ -32,6 +32,7 @@
{{ with .Site.Params.copyright }}
&copy; {{ $.Now.Format "2006" }} {{ . }} &ndash;
{{ end }}
<br><br>
Documentation built with
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
using the

View File

@ -39,7 +39,7 @@
<!-- ------------------------------------------------------------------------- -->
<br><br><br>
<img src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/laradock-logo.jpg" alt="laradock logo">
<img src="images/laradock-full-logo.jpg" alt="laradock logo">
{{ range where .Site.Pages "Type" "index" }}
<br><br><br><br><br><br>
@ -54,6 +54,7 @@
{{ with .Site.Params.copyright }}
&copy; {{ $.Now.Format "2006" }} {{ . }} &ndash;
{{ end }}
<br><br>
Documentation built with
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
using the

View File

@ -36,6 +36,25 @@
<link rel="shortcut icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
<link rel="icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
<!-- <link rel="icon" type="image/png" sizes="192x192" href="images/favicons/android-icon-192x192.png">-->
<!-- <link rel="icon" type="image/png" sizes="32x32" href="images/favicons/favicon-32x32.png">-->
<!-- <link rel="icon" type="image/png" sizes="96x96" href="images/favicons/favicon-96x96.png">-->
<!-- <link rel="icon" type="image/png" sizes="16x16" href="images/favicons/favicon-16x16.png">-->
<link rel="apple-touch-icon" sizes="57x57" href="images/favicons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="images/favicons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/favicons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="images/favicons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/favicons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="images/favicons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="images/favicons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="images/favicons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="images/favicons/apple-icon-180x180.png">
<link rel="manifest" href="images/favicons/manifest.json">
<meta name="msapplication-TileColor" content="#7e57c2">
<meta name="msapplication-TileImage" content="images/favicons/ms-icon-144x144.png">
<meta name="theme-color" content="#7e57c2">
<style>
@font-face {
font-family: 'Icon';

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,41 @@
{
"name": "App",
"icons": [
{
"src": "\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

View File

@ -23,7 +23,7 @@
<h4 align="center" style="color:#7d58c2">Use Docker First - Then Learn About It Later</h4>
<h4 align="center" style="color:#7d58c2">Use Docker First - Then Learn About It Later!</h4>
<p align="center">
<a href="http://laradock.io">
@ -176,6 +176,8 @@ Contribute and help us sustain the project.
<b>Option 2:</b> Become a Sponsor via [Github Sponsors](https://github.com/sponsors/Mahmoudz).
<br>
<b>Option 3:</b> Become a Sponsor/Backer via [Open Collective](https://opencollective.com/laradock/contribute).
<br>
<b>Option 4:</b> Become a [Patreon](https://www.patreon.com/zalt).
## Sponsors

View File

@ -49,7 +49,7 @@ volumes:
driver: ${VOLUMES_DRIVER}
graylog:
driver: ${VOLUMES_DRIVER}
dind:
docker-in-docker:
driver: ${VOLUMES_DRIVER}
services:
@ -60,7 +60,9 @@ services:
context: ./workspace
args:
- CHANGE_SOURCE=${CHANGE_SOURCE}
- SHELL_OH_MY_ZSH=${SHELL_OH_MY_ZSH}
- UBUNTU_SOURCE=${UBUNTU_SOURCE}
- BASE_IMAGE_TAG_PREFIX=${WORKSPACE_BASE_IMAGE_TAG_PREFIX}
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
@ -85,6 +87,7 @@ services:
- NVM_NODEJS_ORG_MIRROR=${WORKSPACE_NVM_NODEJS_ORG_MIRROR}
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
- INSTALL_PNPM=${WORKSPACE_INSTALL_PNPM}
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
- INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP}
- INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER}
@ -127,6 +130,7 @@ services:
- INSTALL_YAML=${WORKSPACE_INSTALL_YAML}
- INSTALL_MAILPARSE=${WORKSPACE_INSTALL_MAILPARSE}
- INSTALL_GIT_PROMPT=${WORKSPACE_INSTALL_GIT_PROMPT}
- INSTALL_XMLRPC=${WORKSPACE_INSTALL_XMLRPC}
- PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
@ -140,21 +144,31 @@ services:
- INSTALL_POWERLINE=${WORKSPACE_INSTALL_POWERLINE}
- INSTALL_SUPERVISOR=${WORKSPACE_INSTALL_SUPERVISOR}
- INSTALL_FFMPEG=${WORKSPACE_INSTALL_FFMPEG}
- INSTALL_WKHTMLTOPDF=${WORKSPACE_INSTALL_WKHTMLTOPDF}
- INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL}
- http_proxy
- https_proxy
- no_proxy
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
- docker-in-docker:/certs/client
- ./php-worker/supervisord.d:/etc/supervisord.d
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
ports:
- "${WORKSPACE_SSH_PORT}:22"
- "${WORKSPACE_BROWSERSYNC_HOST_PORT}:3000"
- "${WORKSPACE_BROWSERSYNC_UI_HOST_PORT}:3001"
- "${WORKSPACE_VUE_CLI_SERVE_HOST_PORT}:8080"
- "${WORKSPACE_VUE_CLI_UI_HOST_PORT}:8000"
- "${WORKSPACE_ANGULAR_CLI_SERVE_HOST_PORT}:4200"
tty: true
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
- DOCKER_HOST=tcp://docker-in-docker:2375
- DOCKER_HOST=tcp://docker-in-docker:2376
- DOCKER_TLS_VERIFY=1
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_CERT_PATH=/certs/client
networks:
- frontend
- backend
@ -167,6 +181,7 @@ services:
context: ./php-fpm
args:
- CHANGE_SOURCE=${CHANGE_SOURCE}
- BASE_IMAGE_TAG_PREFIX=${PHP_FPM_BASE_IMAGE_TAG_PREFIX}
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- LARADOCK_PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_BZ2=${PHP_FPM_INSTALL_BZ2}
@ -220,7 +235,9 @@ services:
- INSTALL_PCNTL=${PHP_FPM_INSTALL_PCNTL}
- ADDITIONAL_LOCALES=${PHP_FPM_ADDITIONAL_LOCALES}
- INSTALL_FFMPEG=${PHP_FPM_FFMPEG}
- INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF}
- INSTALL_XHPROF=${PHP_FPM_INSTALL_XHPROF}
- INSTALL_XMLRPC=${PHP_FPM_INSTALL_XMLRPC}
- PUID=${PHP_FPM_PUID}
- PGID=${PHP_FPM_PGID}
- LOCALE=${PHP_FPM_DEFAULT_LOCALE}
@ -230,13 +247,17 @@ services:
volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
- docker-in-docker:/certs/client
expose:
- "9000"
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
- DOCKER_HOST=tcp://docker-in-docker:2375
- DOCKER_HOST=tcp://docker-in-docker:2376
- DOCKER_TLS_VERIFY=1
- DOCKER_TLS_CERTDIR=/certs
- DOCKER_CERT_PATH=/certs/client
- FAKETIME=${PHP_FPM_FAKETIME}
depends_on:
- workspace
@ -254,9 +275,12 @@ services:
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- PHALCON_VERSION=${PHALCON_VERSION}
- INSTALL_BZ2=${PHP_WORKER_INSTALL_BZ2}
- INSTALL_GD=${PHP_WORKER_INSTALL_GD}
- INSTALL_IMAGEMAGICK=${PHP_WORKER_INSTALL_IMAGEMAGICK}
- INSTALL_GMP=${PHP_WORKER_INSTALL_GMP}
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
- INSTALL_OCI8=${PHP_WORKER_INSTALL_OCI8}
- INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON}
- INSTALL_SOAP=${PHP_WORKER_INSTALL_SOAP}
- INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE}
@ -269,6 +293,8 @@ services:
- INSTALL_TAINT=${PHP_WORKER_INSTALL_TAINT}
- INSTALL_FFMPEG=${PHP_WORKER_INSTALL_FFMPEG}
- INSTALL_REDIS=${PHP_WORKER_INSTALL_REDIS}
- INSTALL_IMAP=${PHP_WORKER_INSTALL_IMAP}
- INSTALL_XMLRPC=${PHP_WORKER_INSTALL_XMLRPC}
- PUID=${PHP_WORKER_PUID}
- PGID=${PHP_WORKER_PGID}
volumes:
@ -288,8 +314,11 @@ services:
- CHANGE_SOURCE=${CHANGE_SOURCE}
- LARADOCK_PHP_VERSION=${PHP_VERSION}
- INSTALL_BZ2=${LARAVEL_HORIZON_INSTALL_BZ2}
- INSTALL_GD=${LARAVEL_HORIZON_INSTALL_GD}
- INSTALL_GMP=${LARAVEL_HORIZON_INSTALL_GMP}
- INSTALL_IMAGEMAGICK=${LARAVEL_HORIZON_INSTALL_IMAGEMAGICK}
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
- INSTALL_ZIP_ARCHIVE=${LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE}
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
- INSTALL_SOCKETS=${LARAVEL_HORIZON_INSTALL_SOCKETS}
@ -298,8 +327,8 @@ services:
- INSTALL_PHPREDIS=${LARAVEL_HORIZON_INSTALL_PHPREDIS}
- INSTALL_MONGO=${LARAVEL_HORIZON_INSTALL_MONGO}
- INSTALL_FFMPEG=${LARAVEL_HORIZON_INSTALL_FFMPEG}
- PUID=${PHP_WORKER_PUID}
- PGID=${PHP_WORKER_PGID}
- PUID=${LARAVEL_HORIZON_PUID}
- PGID=${LARAVEL_HORIZON_PGID}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ./laravel-horizon/supervisord.d:/etc/supervisord.d
@ -800,6 +829,9 @@ services:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
ports:
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
@ -1268,11 +1300,13 @@ services:
### Docker-in-Docker ################################################
docker-in-docker:
image: docker:dind
image: docker:19.03-dind
environment:
DOCKER_TLS_SAN: DNS:docker-in-docker
privileged: true
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${DATA_PATH_HOST}/dind:/var/lib/docker
- docker-in-docker:/certs/client
expose:
- 2375
networks:
@ -1280,11 +1314,13 @@ services:
### NetData ################################################
netdata:
image: titpetric/netdata:latest
image: netdata/netdata:latest
cap_add:
- SYS_PTRACE
- SYS_PTRACE
volumes:
- /:/host:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "${NETDATA_PORT}:19999"
networks:
@ -1589,19 +1625,38 @@ services:
traefik:
build:
context: ./traefik
command: --docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik/data:/data
command:
- "--api"
- "--providers.docker.exposedbydefault=false"
- "--accesslog.filepath=/data/access.log"
# entrypoints
- "--entrypoints.http.address=:${TRAEFIK_HOST_HTTP_PORT}"
- "--entrypoints.http.http.redirections.entrypoint.to=https"
- "--entrypoints.https.address=:${TRAEFIK_HOST_HTTPS_PORT}"
- "--entrypoints.traefik.address=:${TRAEFIK_DASHBOARD_PORT}"
# certificatesresolvers
- "--certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL}"
- "--certificatesresolvers.letsencrypt.acme.storage=/data/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=http"
ports:
- "${TRAEFIK_HOST_HTTP_PORT}:80"
- "${TRAEFIK_HOST_HTTPS_PORT}:443"
- "${TRAEFIK_HOST_HTTP_PORT}:${TRAEFIK_HOST_HTTP_PORT}"
- "${TRAEFIK_HOST_HTTPS_PORT}:${TRAEFIK_HOST_HTTPS_PORT}"
- "${TRAEFIK_DASHBOARD_PORT}:${TRAEFIK_DASHBOARD_PORT}"
networks:
- frontend
- backend
labels:
- traefik.backend=traefik
- traefik.frontend.rule=Host:monitor.localhost
- traefik.port=8080
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`${ACME_DOMAIN}`)"
- "traefik.http.routers.traefik.entrypoints=traefik"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.middlewares=access-auth"
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
- "traefik.http.middlewares.access-auth.basicauth.realm=Login Required"
- "traefik.http.middlewares.access-auth.basicauth.users=${TRAEFIK_DASHBOARD_USER}"
### MOSQUITTO Broker #########################################
mosquitto:

View File

@ -32,7 +32,7 @@ COMPOSE_FILE=docker-compose.yml
# Change the separator from : to ; on Windows
COMPOSE_PATH_SEPARATOR=:
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have separate containers per project.
COMPOSE_PROJECT_NAME=laradock
### PHP Version ###########################################
@ -44,7 +44,7 @@ PHP_VERSION=7.3
### 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.5
PHALCON_VERSION=4.0.5
### PHP Interpreter #######################################
@ -78,12 +78,19 @@ UBUNTU_SOURCE=aliyun
# If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required
DOCKER_SYNC_STRATEGY=native_osx
### Install Oh My ZSH! ####################################
# If you want to use "Oh My ZSH!" with Laravel autocomplete plugin, set SHELL_OH_MY_ZSH to true.
SHELL_OH_MY_ZSH=false
###########################################################
################ Containers Customization #################
###########################################################
### WORKSPACE #############################################
WORKSPACE_BASE_IMAGE_TAG_PREFIX=latest
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
WORKSPACE_COMPOSER_AUTH=false
WORKSPACE_COMPOSER_REPO_PACKAGIST=
@ -91,6 +98,7 @@ WORKSPACE_NVM_NODEJS_ORG_MIRROR=
WORKSPACE_INSTALL_NODE=true
WORKSPACE_NODE_VERSION=node
WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_PNPM=false
WORKSPACE_INSTALL_YARN=true
WORKSPACE_YARN_VERSION=latest
WORKSPACE_INSTALL_NPM_GULP=true
@ -150,19 +158,27 @@ WORKSPACE_INSTALL_INOTIFY=false
WORKSPACE_INSTALL_FSWATCH=false
WORKSPACE_INSTALL_YAML=false
WORKSPACE_INSTALL_MAILPARSE=false
WORKSPACE_INSTALL_XMLRPC=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.42
WORKSPACE_TIMEZONE=UTC
WORKSPACE_SSH_PORT=2222
WORKSPACE_INSTALL_FFMPEG=false
WORKSPACE_INSTALL_WKHTMLTOPDF=false
WORKSPACE_INSTALL_GNU_PARALLEL=false
WORKSPACE_INSTALL_AST=true
WORKSPACE_AST_VERSION=1.0.3
WORKSPACE_BROWSERSYNC_HOST_PORT=3000
WORKSPACE_BROWSERSYNC_UI_HOST_PORT=3001
WORKSPACE_VUE_CLI_SERVE_HOST_PORT=8080
WORKSPACE_VUE_CLI_UI_HOST_PORT=8001
WORKSPACE_ANGULAR_CLI_SERVE_HOST_PORT=4200
WORKSPACE_INSTALL_GIT_PROMPT=false
### PHP_FPM ###############################################
PHP_FPM_BASE_IMAGE_TAG_PREFIX=latest
PHP_FPM_INSTALL_BCMATH=true
PHP_FPM_INSTALL_MYSQLI=true
PHP_FPM_INSTALL_INTL=true
@ -204,6 +220,7 @@ PHP_FPM_INSTALL_FAKETIME=false
PHP_FPM_INSTALL_IONCUBE=false
PHP_FPM_INSTALL_RDKAFKA=false
PHP_FPM_INSTALL_GETTEXT=false
PHP_FPM_INSTALL_XMLRPC=false
PHP_FPM_FAKETIME=-0
PHP_FPM_INSTALL_APCU=false
PHP_FPM_INSTALL_CACHETOOL=false
@ -213,8 +230,9 @@ PHP_FPM_INSTALL_MYSQL_CLIENT=false
PHP_FPM_INSTALL_PING=false
PHP_FPM_INSTALL_SSHPASS=false
PHP_FPM_INSTALL_MAILPARSE=false
PHP_FPM_INSTALL_WKHTMLTOPDF=false
PHP_FPM_FFMPEG=false
PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8"
PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8"
PHP_FPM_DEFAULT_LOCALE=POSIX
PHP_FPM_PUID=1000
@ -223,9 +241,13 @@ PHP_FPM_PGID=1000
### PHP_WORKER ############################################
PHP_WORKER_INSTALL_BZ2=false
PHP_WORKER_INSTALL_GD=false
PHP_WORKER_INSTALL_IMAGEMAGICK=false
PHP_WORKER_INSTALL_GMP=false
PHP_WORKER_INSTALL_PGSQL=false
PHP_WORKER_INSTALL_BCMATH=false
# PHP_WORKER_INSTALL_OCI8 Does not work in php5.6 version
PHP_WORKER_INSTALL_OCI8=false
PHP_WORKER_INSTALL_PHALCON=false
PHP_WORKER_INSTALL_SOAP=false
PHP_WORKER_INSTALL_ZIP_ARCHIVE=false
@ -238,6 +260,8 @@ PHP_WORKER_INSTALL_FFMPEG=false
PHP_WORKER_INSTALL_CASSANDRA=false
PHP_WORKER_INSTALL_GEARMAN=false
PHP_WORKER_INSTALL_REDIS=false
PHP_WORKER_INSTALL_IMAP=false
PHP_WORKER_INSTALL_XMLRPC
PHP_WORKER_PUID=1000
PHP_WORKER_PGID=1000
@ -255,12 +279,17 @@ NGINX_SSL_PATH=./nginx/ssl/
### LARAVEL_HORIZON ################################################
LARAVEL_HORIZON_INSTALL_BZ2=false
LARAVEL_HORIZON_INSTALL_GD=false
LARAVEL_HORIZON_INSTALL_GMP=false
LARAVEL_HORIZON_INSTALL_IMAGEMAGICK=false
LARAVEL_HORIZON_INSTALL_SOCKETS=false
LARAVEL_HORIZON_INSTALL_YAML=false
LARAVEL_HORIZON_INSTALL_ZIP_ARCHIVE=false
LARAVEL_HORIZON_INSTALL_PHPREDIS=true
LARAVEL_HORIZON_INSTALL_MONGO=false
LARAVEL_HORIZON_INSTALL_FFMPEG=false
LARAVEL_HORIZON_PGID=1000
LARAVEL_HORIZON_PUID=1000
### APACHE ################################################
@ -737,6 +766,11 @@ MAILU_WEBDAV=radicale
TRAEFIK_HOST_HTTP_PORT=80
TRAEFIK_HOST_HTTPS_PORT=443
TRAEFIK_DASHBOARD_PORT=8888
# basic authentication for traefik dashboard username: admin password:admin
TRAEFIK_DASHBOARD_USER=admin:$2y$10$lXaL3lj6raFic6rFqr2.lOBoCudAIhB6zyoqObNg290UFppiUzTTi
ACME_DOMAIN=example.org
ACME_EMAIL=email@example.org
### MOSQUITTO #################################################
@ -850,7 +884,7 @@ GEARMAN_MYSQL_PORT=3306
# Mysql server user (Default: root)
GEARMAN_MYSQL_USER=root
# Mysql password
GEARMAN_MYSQL_PASSWORD=
GEARMAN_MYSQL_PASSWORD=
# Path to file with mysql password(Docker secrets)
GEARMAN_MYSQL_PASSWORD_FILE=
# Database to use by Gearman (Default: Gearmand)

View File

@ -53,6 +53,13 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \
docker-php-ext-install bz2 \
;fi
#Install GD package:
ARG INSTALL_GD=false
RUN if [ ${INSTALL_GD} = true ]; then \
apk add --update --no-cache libpng-dev; \
docker-php-ext-install gd \
;fi
#Install GMP package:
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
@ -60,6 +67,16 @@ RUN if [ ${INSTALL_GMP} = true ]; then \
docker-php-ext-install gmp \
;fi
#Install ImageMagick package:
ARG INSTALL_IMAGEMAGICK=false
RUN set -eux; \
if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apk add --update --no-cache imagemagick-dev; \
pecl install imagick; \
docker-php-ext-enable imagick; \
php -m | grep -q 'imagick'; \
fi
#Install BCMath package:
ARG INSTALL_BCMATH=false
RUN if [ ${INSTALL_BCMATH} = true ]; then \
@ -79,6 +96,20 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \
&& docker-php-ext-install pdo_pgsql \
;fi
# Install ZipArchive:
ARG INSTALL_ZIP_ARCHIVE=false
RUN set -eux; \
if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
apk --update add libzip-dev && \
if [ ${LARADOCK_PHP_VERSION} = "7.3" ] || [ ${LARADOCK_PHP_VERSION} = "7.4" ]; then \
docker-php-ext-configure zip; \
else \
docker-php-ext-configure zip --with-libzip; \
fi && \
# Install the zip extension
docker-php-ext-install zip \
;fi
# Install PhpRedis package:
ARG INSTALL_PHPREDIS=false
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \

View File

@ -8,4 +8,5 @@ ADD ./pipeline/ /usr/share/logstash/pipeline/
ADD ./config/ /usr/share/logstash/config/
RUN logstash-plugin install logstash-input-jdbc
RUN logstash-plugin install logstash-input-beats

View File

@ -8,3 +8,4 @@
[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
default-authentication-plugin=mysql_native_password

View File

@ -13,7 +13,8 @@
#
ARG LARADOCK_PHP_VERSION
FROM laradock/php-fpm:2.7-${LARADOCK_PHP_VERSION}
ARG BASE_IMAGE_TAG_PREFIX=latest
FROM laradock/php-fpm:${BASE_IMAGE_TAG_PREFIX}-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
@ -107,7 +108,7 @@ RUN if [ ${INSTALL_SSH2} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a ssh2-0.13; \
else \
pecl install -a ssh2-1.1.2; \
pecl install -a ssh2-1.2; \
fi && \
docker-php-ext-enable ssh2 \
;fi
@ -189,7 +190,11 @@ RUN if [ ${INSTALL_XDEBUG} = true ]; then \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install xdebug-2.5.5; \
else \
pecl install xdebug; \
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
pecl install xdebug-2.9.0; \
else \
pecl install xdebug; \
fi \
fi && \
docker-php-ext-enable xdebug \
;fi
@ -716,7 +721,14 @@ ENV LARADOCK_PHALCON_VERSION ${LARADOCK_PHALCON_VERSION}
COPY ./phalcon.ini /usr/local/etc/php/conf.d/phalcon.ini.disable
RUN if [ $INSTALL_PHALCON = true ]; then \
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c \
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c git automake autoconf\
&& git clone https://github.com/jbboehr/php-psr.git \
&& cd php-psr \
&& phpize \
&& ./configure \
&& make \
&& make test \
&& make install \
&& 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 \
@ -806,11 +818,7 @@ USER root
ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \
apt-get -y install default-mysql-client \
;else \
apt-get -y install mysql-client \
;fi \
;fi
###########################################################################
@ -849,6 +857,26 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \
apt-get -y install ffmpeg \
;fi
#####################################
# wkhtmltopdf:
#####################################
USER root
ARG INSTALL_WKHTMLTOPDF=false
RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \
apt-get install -y \
libxrender1 \
libfontconfig1 \
libx11-dev \
libjpeg62 \
libxtst6 \
wget \
&& wget https://github.com/h4cc/wkhtmltopdf-amd64/blob/master/bin/wkhtmltopdf-amd64?raw=true -O /usr/local/bin/wkhtmltopdf \
&& chmod +x /usr/local/bin/wkhtmltopdf \
;fi
###########################################################################
# Mailparse extension:
###########################################################################
@ -878,6 +906,16 @@ RUN if [ ${INSTALL_CACHETOOL} = true ]; then \
mv cachetool.phar /usr/local/bin/cachetool \
;fi
###########################################################################
# XMLRPC:
###########################################################################
ARG INSTALL_XMLRPC=false
RUN if [ ${INSTALL_XMLRPC} = true ]; then \
docker-php-ext-install xmlrpc \
;fi
###########################################################################
# Check PHP version:
###########################################################################

View File

@ -1 +1,2 @@
extension=psr.so
extension=phalcon.so

View File

@ -1,7 +1,7 @@
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
; xdebug.remote_host=dockerhost
xdebug.remote_connect_back=1
xdebug.remote_host="host.docker.internal"
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
@ -17,4 +17,3 @@ xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

View File

@ -32,10 +32,16 @@ RUN apk --update add wget \
cyrus-sasl-dev \
libgsasl-dev \
oniguruma-dev \
openssl \
openssl-dev \
supervisor
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 mongodb && docker-php-ext-enable memcached mongodb
RUN if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl channel-update pecl.php.net && pecl install memcached-2.2.0 mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb \
;else \
pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 mongodb && docker-php-ext-enable memcached mongodb \
;fi
# Add a non-root user:
ARG PUID=1000
@ -53,6 +59,21 @@ RUN if [ ${INSTALL_BZ2} = true ]; then \
docker-php-ext-install bz2; \
fi
#Install GD package:
ARG INSTALL_GD=false
RUN if [ ${INSTALL_GD} = true ]; then \
apk add --update --no-cache libpng-dev; \
docker-php-ext-install gd \
;fi
#Install ImageMagick:
ARG INSTALL_IMAGEMAGICK=false
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
apk add --update imagemagick-dev imagemagick; \
pecl install imagick; \
docker-php-ext-enable imagick \
;fi
#Install GMP package:
ARG INSTALL_GMP=false
RUN if [ ${INSTALL_GMP} = true ]; then \
@ -72,6 +93,47 @@ RUN if [ ${INSTALL_BCMATH} = true ]; then \
docker-php-ext-install bcmath \
;fi
###########################################################################
# PHP OCI8:
###########################################################################
ARG INSTALL_OCI8=false
ENV LD_LIBRARY_PATH="/usr/local/instantclient"
ENV ORACLE_HOME="/usr/local/instantclient"
RUN if [ ${INSTALL_OCI8} = true ] && [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
apk add make php7-pear php7-dev gcc musl-dev libnsl libaio poppler-utils libzip-dev zip unzip libaio-dev freetds-dev && \
## Download and unarchive Instant Client v11
curl -o /tmp/basic.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-basic-linux.x64-11.2.0.4.0.zip && \
curl -o /tmp/sdk.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sdk-linux.x64-11.2.0.4.0.zip && \
curl -o /tmp/sqlplus.zip https://raw.githubusercontent.com/bumpx/oracle-instantclient/master/instantclient-sqlplus-linux.x64-11.2.0.4.0.zip && \
unzip -d /usr/local/ /tmp/basic.zip && \
unzip -d /usr/local/ /tmp/sdk.zip && \
unzip -d /usr/local/ /tmp/sqlplus.zip \
## Links are required for older SDKs
&& ln -s /usr/local/instantclient_11_2 ${ORACLE_HOME} && \
ln -s ${ORACLE_HOME}/libclntsh.so.* ${ORACLE_HOME}/libclntsh.so && \
ln -s ${ORACLE_HOME}/libocci.so.* ${ORACLE_HOME}/libocci.so && \
ln -s ${ORACLE_HOME}/lib* /usr/lib && \
ln -s ${ORACLE_HOME}/sqlplus /usr/bin/sqlplus &&\
ln -s /usr/lib/libnsl.so.2.0.0 /usr/lib/libnsl.so.1 && \
## Build OCI8 with PECL
echo "instantclient,${ORACLE_HOME}" | pecl install oci8 && \
echo 'extension=oci8.so' > /etc/php7/conf.d/30-oci8.ini \
# Clean up
apk del php7-pear php7-dev gcc musl-dev && \
rm -rf /tmp/*.zip /tmp/pear/ && \
docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/local/instantclient \
&& docker-php-ext-configure pdo_dblib --with-libdir=/lib \
&& docker-php-ext-install pdo_oci \
&& docker-php-ext-enable oci8 \
&& docker-php-ext-install zip && \
# Install the zip extension
docker-php-ext-configure zip && \
php -m | grep -q 'zip' \
;fi
# Install PostgreSQL drivers:
ARG INSTALL_PGSQL=false
RUN if [ ${INSTALL_PGSQL} = true ]; then \
@ -96,11 +158,7 @@ RUN set -eux; \
# Install MySQL Client:
ARG INSTALL_MYSQL_CLIENT=false
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \
apk --update add default-mysql-client \
;else \
apk --update add mysql-client \
;fi \
;fi
# Install FFMPEG:
@ -157,6 +215,13 @@ ENV PHALCON_VERSION ${PHALCON_VERSION}
RUN if [ $INSTALL_PHALCON = true ]; then \
apk --update add unzip gcc make re2c bash\
&& git clone https://github.com/jbboehr/php-psr.git \
&& cd php-psr \
&& phpize \
&& ./configure \
&& make \
&& make test \
&& make install \
&& curl -L -o /tmp/cphalcon.zip https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.zip \
&& unzip -d /tmp/ /tmp/cphalcon.zip \
&& cd /tmp/cphalcon-${PHALCON_VERSION}/build \
@ -212,6 +277,28 @@ RUN if [ ${INSTALL_TAINT} = true ]; then \
docker-php-ext-enable taint \
;fi
###########################################################################
# Imap EXTENSION
###########################################################################
ARG INSTALL_IMAP=false
RUN if [ ${INSTALL_IMAP} = true ]; then \
apk add --update imap-dev openssl-dev && \
docker-php-ext-configure imap --with-imap --with-imap-ssl && \
docker-php-ext-install imap \
;fi
###########################################################################
# XMLRPC:
###########################################################################
ARG INSTALL_XMLRPC=false
RUN if [ ${INSTALL_XMLRPC} = true ]; then \
docker-php-ext-install xmlrpc \
;fi
#
#--------------------------------------------------------------------------
# Optional Supervisord Configuration

View File

@ -1,7 +1,11 @@
FROM traefik:1.7.5-alpine
FROM traefik:v2.2
LABEL maintainer="Luis Coutinho <luis@luiscoutinho.pt>"
COPY traefik.toml acme.json /
WORKDIR /data
RUN chmod 600 /acme.json
RUN touch acme.json
RUN chmod 600 acme.json
VOLUME /data

View File

2
traefik/data/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*
!.gitignore

View File

@ -1,23 +0,0 @@
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[web]
address = ":8080"
[acme]
email = "email@example.org"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
[[acme.domais]]
main = "localhost"

View File

@ -13,7 +13,8 @@
#
ARG LARADOCK_PHP_VERSION
FROM laradock/workspace:2.6.1-${LARADOCK_PHP_VERSION}
ARG BASE_IMAGE_TAG_PREFIX=latest
FROM laradock/workspace:${BASE_IMAGE_TAG_PREFIX}-${LARADOCK_PHP_VERSION}
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
@ -50,6 +51,7 @@ ARG UBUNTU_SOURCE
COPY ./sources.sh /tmp/sources.sh
RUN if [ ${CHANGE_SOURCE} = true ]; then \
chmod +x /tmp/sources.sh && \
/bin/sh -c /tmp/sources.sh && \
rm -rf /tmp/sources.sh \
;fi
@ -73,7 +75,7 @@ RUN set -xe; \
# to add more Software's or remove existing one, you need to edit the
# base image (https://github.com/Laradock/workspace).
#
# next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846
# next lines are here because there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846
libzip-dev zip unzip \
# Install the zip extension
php${LARADOCK_PHP_VERSION}-zip \
@ -585,10 +587,13 @@ ARG AST_VERSION=1.0.3
ENV AST_VERSION ${AST_VERSION}
RUN if [ ${INSTALL_AST} = true ]; then \
# Install AST extension
printf "\n" | pecl -q install ast-${AST_VERSION} && \
echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \
phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \
# AST extension requires PHP 7.0.0 or newer
if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then \
# Install AST extension
printf "\n" | pecl -q install ast-${AST_VERSION} && \
echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini && \
phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast \
;fi \
;fi
###########################################################################
@ -718,6 +723,20 @@ RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
;fi
###########################################################################
# PNPM:
###########################################################################
USER laradock
ARG INSTALL_PNPM=false
RUN if [ ${INSTALL_PNPM} = true ]; then \
npx pnpm add -g pnpm \
;fi
###########################################################################
# YARN:
###########################################################################
@ -866,7 +885,7 @@ ARG INSTALL_LARAVEL_ENVOY=false
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
# Install the Laravel Envoy
composer global require "laravel/envoy=~1.0" \
composer global require "laravel/envoy=~2.0" \
;fi
###########################################################################
@ -1159,11 +1178,19 @@ 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 \
apt-get update && apt-get install -y unzip libpcre3-dev gcc make re2c git automake autoconf\
&& git clone https://github.com/jbboehr/php-psr.git \
&& cd php-psr \
&& phpize \
&& ./configure \
&& make \
&& make test \
&& make install \
&& 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=psr.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/phalcon.ini \
&& 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* \
@ -1239,6 +1266,26 @@ RUN if [ ${INSTALL_FFMPEG} = true ]; then \
apt-get -y install ffmpeg \
;fi
#####################################
# wkhtmltopdf:
#####################################
USER root
ARG INSTALL_WKHTMLTOPDF=false
RUN if [ ${INSTALL_WKHTMLTOPDF} = true ]; then \
apt-get install -y \
libxrender1 \
libfontconfig1 \
libx11-dev \
libjpeg62 \
libxtst6 \
wget \
&& wget https://github.com/h4cc/wkhtmltopdf-amd64/blob/master/bin/wkhtmltopdf-amd64?raw=true -O /usr/local/bin/wkhtmltopdf \
&& chmod +x /usr/local/bin/wkhtmltopdf \
;fi
###########################################################################
# Mailparse extension:
###########################################################################
@ -1275,12 +1322,53 @@ RUN if [ ${INSTALL_GIT_PROMPT} = true ]; then \
rm /tmp/git-prompt \
;fi
###########################################################################
# XMLRPC:
###########################################################################
ARG INSTALL_XMLRPC=false
RUN if [ ${INSTALL_XMLRPC} = true ]; then \
docker-php-ext-install xmlrpc \
;fi
###########################################################################
# Check PHP version:
###########################################################################
RUN set -xe; php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
###########################################################################
# Oh My ZSH!
###########################################################################
USER root
ARG SHELL_OH_MY_ZSH=false
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
apt install -y zsh \
;fi
USER laradock
RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) --keep-zshrc" && \
sed -i -r 's/^plugins=\(.*?\)$/plugins=(laravel5)/' /home/laradock/.zshrc && \
echo '\n\
bindkey "^[OB" down-line-or-search\n\
bindkey "^[OC" forward-char\n\
bindkey "^[OD" backward-char\n\
bindkey "^[OF" end-of-line\n\
bindkey "^[OH" beginning-of-line\n\
bindkey "^[[1~" beginning-of-line\n\
bindkey "^[[3~" delete-char\n\
bindkey "^[[4~" end-of-line\n\
bindkey "^[[5~" up-line-or-history\n\
bindkey "^[[6~" down-line-or-history\n\
bindkey "^?" backward-delete-char\n' >> /home/laradock/.zshrc \
;fi
USER root
#
#--------------------------------------------------------------------------
# Final Touch

View File

@ -1,7 +1,7 @@
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
; xdebug.remote_host=dockerhost
xdebug.remote_connect_back=1
xdebug.remote_host="host.docker.internal"
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
@ -17,4 +17,3 @@ xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1