Compare commits
363 Commits
Author | SHA1 | Date | |
---|---|---|---|
d732318e52 | |||
ccf85148e8 | |||
378900ee38 | |||
e943d90ca2 | |||
d847c1a8c5 | |||
ace85c38d7 | |||
be48366190 | |||
fb617deb86 | |||
5a25b786f3 | |||
88d06bb838 | |||
bc6ba25790 | |||
3889363443 | |||
42c580af1f | |||
a954732145 | |||
f608c6a45d | |||
53558480e8 | |||
76b046f321 | |||
818d61ab54 | |||
c6fe34db11 | |||
dec428a748 | |||
9cea74dc6f | |||
a190f11e8f | |||
f3e3bbe2b7 | |||
91041e9c56 | |||
84db9b079d | |||
64573a407f | |||
ed6be69cc1 | |||
838156b1bd | |||
9bdeaa3682 | |||
c84db7d4d7 | |||
a7faceba37 | |||
f27c186b93 | |||
2c9563d2cd | |||
dab5ff1ac6 | |||
5a0c905457 | |||
b6204e5933 | |||
ba23f41322 | |||
4b0f58f1b2 | |||
b753c0580e | |||
8474acdf17 | |||
4afc747bf5 | |||
0a4e832371 | |||
e53632404f | |||
2d27fc36e8 | |||
9e5ff1888e | |||
8f53cea9f7 | |||
5026effcac | |||
351f19b8fe | |||
abdcfa1002 | |||
f5f1f45858 | |||
497878557c | |||
272222b7f1 | |||
919cfc0c87 | |||
fe2631649c | |||
c64be9969f | |||
24361ca818 | |||
b5314e5769 | |||
50b6272fff | |||
461e05d677 | |||
aff7d9d615 | |||
440002f0fc | |||
d3e505cd73 | |||
07c019b672 | |||
c3620e95c8 | |||
4e5a142c9d | |||
c6ad0a1a2d | |||
0573bbc58a | |||
d4e65a40ff | |||
8aeb64ea37 | |||
3cdc771abd | |||
10c28a14fa | |||
402ea8747a | |||
7ad82a3cd1 | |||
83ba1447d4 | |||
41438e9c31 | |||
8b2bcc6d15 | |||
51d821b35f | |||
75acb9f8a5 | |||
c09261e99e | |||
b34b052c64 | |||
18237b467b | |||
b08385b03e | |||
7247d8f7ce | |||
f5c00c61be | |||
d82734744e | |||
ef9eee2def | |||
1673c44136 | |||
6764a88fe6 | |||
4dc4a4e680 | |||
52bd45e1b8 | |||
3cb43e6139 | |||
b7b468765a | |||
04c6aaf338 | |||
4af8ac8f53 | |||
25f883fc99 | |||
8755e445d9 | |||
153e65d6a7 | |||
9428a4b781 | |||
747cfaf583 | |||
dfb0f731f5 | |||
54a29b178a | |||
42af0d8d2c | |||
8f6fa0e868 | |||
d4240ce211 | |||
41e9f4a78f | |||
4dcef17515 | |||
902e041f7b | |||
3f9b888139 | |||
67c5a6a552 | |||
6139805561 | |||
237e39b40d | |||
b7ede26634 | |||
861ea6b16e | |||
e2ddee524d | |||
1e668764fd | |||
5dbd46f9ff | |||
df15420be0 | |||
e852d203ab | |||
eadecf1f1e | |||
308f813e45 | |||
9acb18aee1 | |||
2d444e094c | |||
1f2643f52c | |||
e608528da5 | |||
4e306a6be0 | |||
ed92e61818 | |||
ae64a619b7 | |||
cb910c590e | |||
5e4fda4659 | |||
818eb1f59d | |||
fa1f33bc51 | |||
493fc1a010 | |||
ab3a325ea3 | |||
b8a971e634 | |||
4893347980 | |||
f01cab7742 | |||
f64adc2114 | |||
da8f0d0864 | |||
8254c34647 | |||
2e928a4928 | |||
51c6d3549c | |||
58d1eb876e | |||
044261b06f | |||
196f145ff5 | |||
1602ff2dd0 | |||
4cb6ffc766 | |||
99ceef7b45 | |||
9a852e7bc7 | |||
768f14b6dd | |||
a2e997ab2a | |||
c604de0af0 | |||
440d865fc4 | |||
63a5c45bf8 | |||
3a4c9158d2 | |||
69aa0b2b6a | |||
db1a7cdbbc | |||
26184055c5 | |||
c79d0671e2 | |||
4814490e2a | |||
4e257c8e8f | |||
01eb934863 | |||
ce00c5ea27 | |||
6eaf587803 | |||
60afd8feb3 | |||
8ae02d5d96 | |||
6003de2754 | |||
9df9a90b12 | |||
cd8dc6cc22 | |||
f73a66da13 | |||
9a0f9cfa74 | |||
e9eacfafa7 | |||
a2c7b46766 | |||
ca80dd1694 | |||
d1015e5e96 | |||
63fc1fde44 | |||
623ff66f40 | |||
5bf8be6303 | |||
c0a36a5a4d | |||
c0b28fc404 | |||
9e537ee16b | |||
fbae49b898 | |||
bc8772441b | |||
dba1594b05 | |||
2dd64aef55 | |||
f23149115d | |||
8027a98f72 | |||
23193babf4 | |||
fbdfc41927 | |||
7ea44ca25a | |||
76b71d264d | |||
c7289f7db3 | |||
e8d84cf9a3 | |||
4417083a80 | |||
0980523049 | |||
d8b3cb5a52 | |||
d34602ae29 | |||
cbbdb0a86b | |||
f5c80cd251 | |||
5b07fbb9c4 | |||
83a24efa70 | |||
a03c225e27 | |||
95965b12e7 | |||
58d7d4fa0b | |||
1f22e86d92 | |||
c8b526be13 | |||
b1cbd48221 | |||
d1f3bc8e5c | |||
9920397463 | |||
6f4664c579 | |||
254a9ae194 | |||
8ca26e6c06 | |||
6c8adbc195 | |||
329462a637 | |||
e105ec9569 | |||
76218808fd | |||
f18eb9728b | |||
d404555cf5 | |||
d964e2898c | |||
2d7b780e56 | |||
cf6a9ba2c9 | |||
8f6923531f | |||
61d7b18922 | |||
cde20c3ced | |||
f7dff0f72f | |||
1ec9244f7f | |||
176d4e8033 | |||
2deb9bf1cb | |||
b0edaf93a1 | |||
27af2bca8c | |||
61ac73e806 | |||
14ee775e39 | |||
1282c413fd | |||
ee2db98c61 | |||
739e8d3448 | |||
1286b7ef06 | |||
e0d7229e95 | |||
931f99ed0f | |||
fc3355a9cc | |||
53ca88714c | |||
1d420a2507 | |||
c7aa535598 | |||
5edf3f398b | |||
f6c5aa1801 | |||
a09144f02b | |||
9e4dfa2a0c | |||
99f7e65c99 | |||
e0dc683d3f | |||
eb0c941313 | |||
d27f4368ee | |||
7430a34dd5 | |||
d5647295ca | |||
b1e346383b | |||
3ad37405c6 | |||
913abc54f9 | |||
53e8229313 | |||
36c78369d5 | |||
acac6eb229 | |||
04f071555c | |||
03ff791e17 | |||
7c4f6dd7a9 | |||
f44a8e0ca0 | |||
ce7a29c662 | |||
bbff18c631 | |||
e07c128063 | |||
163eb1f73a | |||
30c8afafa2 | |||
3e771dbcfc | |||
a1bda23cd9 | |||
e6d866b8a6 | |||
35ffd02b44 | |||
d03ead34a2 | |||
28e82813c4 | |||
2de32fe97f | |||
ee89ff96d5 | |||
d8c36ab860 | |||
2689638d7d | |||
fa7d3c239c | |||
22032974c9 | |||
4480962922 | |||
cc81e57206 | |||
5c41a4f3e9 | |||
796b46cf5a | |||
d7765a7b10 | |||
156d124db0 | |||
afdf2661bd | |||
a1af01b137 | |||
1519c80036 | |||
441146b325 | |||
0ed5487ed7 | |||
ca9d244396 | |||
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 | |||
0cbc51bf72 | |||
08dfc9f816 | |||
b71f50bf83 | |||
7d1dc66f77 |
14
.devcontainer/devcontainer.example.json
Normal file
14
.devcontainer/devcontainer.example.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "Laradock",
|
||||
"dockerComposeFile": "../docker-compose.yml",
|
||||
"remoteUser": "laradock",
|
||||
"runServices": [
|
||||
"nginx",
|
||||
"postgres",
|
||||
"pgadmin"
|
||||
],
|
||||
"service": "workspace",
|
||||
"workspaceFolder": "/var/www",
|
||||
"shutdownAction": "stopCompose",
|
||||
"postCreateCommand": "uname -a"
|
||||
}
|
6
.github/FUNDING.yml
vendored
Normal file
6
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
# DO NOT CHANGE THIS FILE PLEASE.
|
||||
|
||||
open_collective: laradock
|
||||
ko_fi: laradock
|
||||
issuehunt: laradock
|
||||
custom: ['beerpay.io/laradock/laradock', 'paypal.me/mzmmzz']
|
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'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 enjoyed my time contributing and making developer's life easier :)
|
||||
- [ ] 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 enjoyed my time contributing and making developer's life easier :)
|
||||
|
92
.github/README.md
vendored
92
.github/README.md
vendored
@ -1,92 +0,0 @@
|
||||
<p align="center">
|
||||
<img src="https://s19.postimg.org/jblfytw9f/laradock-logo.jpg" alt="Laradock Logo"/>
|
||||
</p>
|
||||
|
||||
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/laradock/laradock"><img src="https://travis-ci.org/laradock/laradock.svg?branch=master" alt="Build status"></a>
|
||||
<a href="https://github.com/laradock/laradock/stargazers"><a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/laradock/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/laradock/sponsors/badge.svg" /></a> <img src="https://img.shields.io/github/stars/laradock/laradock.svg" alt="GitHub stars"></a>
|
||||
<a href="https://github.com/laradock/laradock/network"><img src="https://img.shields.io/github/forks/laradock/laradock.svg" alt="GitHub forks"></a>
|
||||
<a href="https://github.com/laradock/laradock/issues"><img src="https://img.shields.io/github/issues/laradock/laradock.svg" alt="GitHub issues"></a>
|
||||
<a href="https://raw.githubusercontent.com/laradock/laradock/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license"></a>
|
||||
<a href="http://laradock.io/contributing"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="contributions welcome"></a>
|
||||
</p>
|
||||
|
||||
<h4 align="center" style="color:#7d58c2">Use Docker First And Learn About It Later</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://zalt.me"><img src="http://forthebadge.com/images/badges/built-by-developers.svg" alt="forthebadge" width="240" ></a>
|
||||
</p>
|
||||
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<a href="http://laradock.io">
|
||||
<img src="https://s19.postimg.org/ecnn9vdw3/Screen_Shot_2017-08-01_at_5.08.54_AM.png" width=300px" alt="Laradock Docs"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
## Sponsors
|
||||
|
||||
Support this project by becoming a sponsor.
|
||||
|
||||
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
|
||||
|
||||
|
||||
## Contributors
|
||||
|
||||
#### Core contributors:
|
||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) @mahmoudz | [Twitter](https://twitter.com/Mahmoud_Zalt) | [Site](http://zalt.me)
|
||||
- [Bo-Yi Wu](https://github.com/appleboy) @appleboy | [Twitter](https://twitter.com/appleboy)
|
||||
- [Philippe Trépanier](https://github.com/philtrep) @philtrep
|
||||
- [Mike Erickson](https://github.com/mikeerickson) @mikeerickson
|
||||
- [Dwi Fahni Denni](https://github.com/zeroc0d3) @zeroc0d3
|
||||
- [Thor Erik](https://github.com/thorerik) @thorerik
|
||||
- [Winfried van Loon](https://github.com/winfried-van-loon) @winfried-van-loon
|
||||
- [TJ Miller](https://github.com/sixlive) @sixlive
|
||||
- [Yu-Lung Shao (Allen)](https://github.com/bestlong) @bestlong
|
||||
- [Milan Urukalo](https://github.com/urukalo) @urukalo
|
||||
- [Vince Chu](https://github.com/vwchu) @vwchu
|
||||
- [Huadong Zuo](https://github.com/zuohuadong) @zuohuadong
|
||||
- Join us, by submitting 20 useful PR's.
|
||||
|
||||
#### Awesome contributors:
|
||||
|
||||
<a href="https://github.com/laradock/laradock/graphs/contributors"><img src="https://opencollective.com/laradock/contributors.svg?width=890" /></a>
|
||||
|
||||
|
||||
## Donations
|
||||
|
||||
> Help keeping the project development going, by [contributing](http://laradock.io/contributing) or donating a little.
|
||||
> Thanks in advance.
|
||||
|
||||
Donate directly via [Paypal](https://www.paypal.me/mzalt)
|
||||
|
||||
[](https://www.paypal.me/mzalt)
|
||||
|
||||
or become a backer on [Open Collective](https://opencollective.com/laradock#backer)
|
||||
|
||||
<a href="https://opencollective.com/laradock#backers" target="_blank"><img src="https://opencollective.com/laradock/backers.svg?width=890"></a>
|
||||
|
||||
or show your support via [Beerpay](https://beerpay.io/laradock/laradock)
|
||||
|
||||
[](https://beerpay.io/laradock/laradock)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE)
|
BIN
.github/home-page-images/documentation-button.png
vendored
Normal file
BIN
.github/home-page-images/documentation-button.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
.github/home-page-images/join-us.png
vendored
Normal file
BIN
.github/home-page-images/join-us.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
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 |
13
.gitignore
vendored
13
.gitignore
vendored
@ -5,3 +5,16 @@
|
||||
/.project
|
||||
.docker-sync
|
||||
/jenkins/jenkins_home
|
||||
|
||||
/logstash/pipeline/*.conf
|
||||
/logstash/config/pipelines.yml
|
||||
|
||||
/nginx/ssl/*.crt
|
||||
/nginx/ssl/*.key
|
||||
/nginx/ssl/*.csr
|
||||
|
||||
/.devcontainer/*
|
||||
!/.devcontainer/devcontainer.example.json
|
||||
!/.devcontainer/docker-compose.extend-example.yml
|
||||
|
||||
.DS_Store
|
||||
|
17
.travis.yml
17
.travis.yml
@ -11,11 +11,15 @@ env:
|
||||
- PHP_VERSION=7.0 BUILD_SERVICE=workspace
|
||||
- PHP_VERSION=7.1 BUILD_SERVICE=workspace
|
||||
- PHP_VERSION=7.2 BUILD_SERVICE=workspace
|
||||
- PHP_VERSION=7.3 BUILD_SERVICE=workspace
|
||||
- PHP_VERSION=7.4 BUILD_SERVICE=workspace
|
||||
|
||||
- PHP_VERSION=5.6 BUILD_SERVICE=php-fpm
|
||||
- PHP_VERSION=7.0 BUILD_SERVICE=php-fpm
|
||||
- PHP_VERSION=7.1 BUILD_SERVICE=php-fpm
|
||||
- PHP_VERSION=7.2 BUILD_SERVICE=php-fpm
|
||||
- PHP_VERSION=7.3 BUILD_SERVICE=php-fpm
|
||||
- PHP_VERSION=7.4 BUILD_SERVICE=php-fpm
|
||||
|
||||
- PHP_VERSION=hhvm BUILD_SERVICE=hhvm
|
||||
|
||||
@ -23,13 +27,22 @@ env:
|
||||
- PHP_VERSION=7.0 BUILD_SERVICE=php-worker
|
||||
- PHP_VERSION=7.1 BUILD_SERVICE=php-worker
|
||||
- PHP_VERSION=7.2 BUILD_SERVICE=php-worker
|
||||
- PHP_VERSION=7.3 BUILD_SERVICE=php-worker
|
||||
- PHP_VERSION=7.4 BUILD_SERVICE=php-worker
|
||||
|
||||
- PHP_VERSION=7.0 BUILD_SERVICE=laravel-horizon
|
||||
- PHP_VERSION=7.1 BUILD_SERVICE=laravel-horizon
|
||||
- PHP_VERSION=7.2 BUILD_SERVICE=laravel-horizon
|
||||
- PHP_VERSION=7.3 BUILD_SERVICE=laravel-horizon
|
||||
- PHP_VERSION=7.4 BUILD_SERVICE=laravel-horizon
|
||||
|
||||
- PHP_VERSION=NA BUILD_SERVICE=solr
|
||||
- PHP_VERSION=NA BUILD_SERVICE="mssql rethinkdb aerospike"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="blackfire minio percona nginx caddy apache2 mysql mariadb postgres postgres-postgis neo4j mongo redis cassandra"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="adminer phpmyadmin pgadmin"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq elasticsearch certbot mailhog maildev selenium jenkins proxy proxy2 haproxy gearman"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="kibana grafana laravel-echo-server"
|
||||
- PHP_VERSION=NA BUILD_SERVICE="ipython-controller manticore"
|
||||
# - PHP_VERSION=NA BUILD_SERVICE="aws"
|
||||
|
||||
# Installing a newer Docker version
|
||||
|
@ -1,4 +1,4 @@
|
||||
baseurl = "http://laradock.io/"
|
||||
baseurl = "https://laradock.io/"
|
||||
languageCode = "en-us"
|
||||
publishDir = "../docs"
|
||||
title = "Laradock"
|
||||
@ -26,7 +26,7 @@ googleAnalytics = "UA-37514928-9"
|
||||
permalink = "#"
|
||||
|
||||
# Custom assets
|
||||
custom_css = []
|
||||
custom_css = ["custom-style.css"]
|
||||
custom_js = []
|
||||
|
||||
# Syntax highlighting theme
|
||||
@ -48,42 +48,42 @@ googleAnalytics = "UA-37514928-9"
|
||||
# ------- MENU START -----------------------------------------
|
||||
|
||||
[[menu.main]]
|
||||
name = "Introduction"
|
||||
name = "1. Introduction"
|
||||
url = "introduction/"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
name = "Getting Started"
|
||||
name = "2. Getting Started"
|
||||
url = "getting-started/"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
name = "Documentation"
|
||||
name = "3. Documentation"
|
||||
url = "documentation/"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
name = "Guides"
|
||||
name = "4. Guides"
|
||||
url = "guides/"
|
||||
weight = 4
|
||||
|
||||
[[menu.main]]
|
||||
name = "Help & Questions"
|
||||
name = "5. Help & Questions"
|
||||
url = "help/"
|
||||
weight = 5
|
||||
|
||||
[[menu.main]]
|
||||
name = "Related Projects"
|
||||
name = "6. Related Projects"
|
||||
url = "related-projects/"
|
||||
weight = 6
|
||||
|
||||
[[menu.main]]
|
||||
name = "Contributing"
|
||||
name = "7. Contributing"
|
||||
url = "contributing/"
|
||||
weight = 7
|
||||
|
||||
[[menu.main]]
|
||||
name = "License"
|
||||
name = "8. License"
|
||||
url = "license/"
|
||||
weight = 8
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Contributing
|
||||
title: 7. Contributing
|
||||
type: index
|
||||
weight: 7
|
||||
---
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: Getting Started
|
||||
title: 2. Getting Started
|
||||
type: index
|
||||
weight: 2
|
||||
---
|
||||
|
||||
## Requirements
|
||||
## 2.1 Requirements
|
||||
|
||||
- [Git](https://git-scm.com/downloads)
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
|
||||
@ -12,10 +12,7 @@ weight: 2
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Installation
|
||||
## 2.2 Installation
|
||||
|
||||
Choose the setup the best suits your needs.
|
||||
|
||||
@ -44,7 +41,7 @@ Note: If you are not using Git yet for your project, you can use `git clone` ins
|
||||
*To keep track of your Laradock changes, between your projects and also keep Laradock updated [check these docs](/documentation/#keep-track-of-your-laradock-changes)*
|
||||
|
||||
|
||||
Your folder structure should look like this:
|
||||
2 - Make sure your folder structure should look like this:
|
||||
|
||||
```
|
||||
+ project-a
|
||||
@ -55,7 +52,7 @@ Your folder structure should look like this:
|
||||
|
||||
*(It's important to rename the laradock folders to unique name in each project, if you want to run laradock per project).*
|
||||
|
||||
> **Now jump to the [Usage](#Usage) section.**
|
||||
3 - Go to the [Usage](#Usage) section.
|
||||
|
||||
<a name="A2"></a>
|
||||
### A.2) Don't have a PHP project yet:
|
||||
@ -81,20 +78,20 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
|
||||
cp env-example .env
|
||||
```
|
||||
|
||||
At the top, change the `APPLICATION` variable to your project path.
|
||||
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
|
||||
|
||||
```
|
||||
APPLICATION=../project-z/
|
||||
APP_CODE_PATH_HOST=../project-z/
|
||||
```
|
||||
|
||||
Make sure to replace `project-z` with your project folder name.
|
||||
|
||||
> **Now jump to the [Usage](#Usage) section.**
|
||||
3 - Go to the [Usage](#Usage) section.
|
||||
|
||||
|
||||
<a name="B"></a>
|
||||
### 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)):
|
||||
|
||||
@ -110,9 +107,11 @@ Your folder structure should look like this:
|
||||
+ project-2
|
||||
```
|
||||
|
||||
2 - Go to `nginx/sites` and create config files to point to different project directory when visiting different domains.
|
||||
2 - Go to your web server and create config files to point to different project directory when visiting different domains:
|
||||
|
||||
Laradock by default includes `app.conf.example`, `laravel.conf.example` and `symfony.conf.example` as working samples.
|
||||
For **Nginx** go to `nginx/sites`, for **Apache2** `apache2/sites`.
|
||||
|
||||
Laradock by default includes some sample files for you to copy `app.conf.example`, `laravel.conf.example` and `symfony.conf.example`.
|
||||
|
||||
3 - change the default names `*.conf`:
|
||||
|
||||
@ -125,9 +124,10 @@ You can rename the config files, project folders and domains as you like, just m
|
||||
127.0.0.1 project-2.test
|
||||
...
|
||||
```
|
||||
|
||||
If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://laravel-news.com/chrome-63-now-forces-dev-domains-https). Instead use `.localhost`, `.invalid`, `.test`, or `.example`.
|
||||
|
||||
> **Now jump to the [Usage](#Usage) section.**
|
||||
4 - Go to the [Usage](#Usage) section.
|
||||
|
||||
|
||||
|
||||
@ -136,14 +136,14 @@ If you use Chrome 63 or above for development, don't use `.dev`. [Why?](https://
|
||||
|
||||
|
||||
<a name="Usage"></a>
|
||||
## Usage
|
||||
## 2.3 Usage
|
||||
|
||||
**Read Before starting:**
|
||||
|
||||
If you are using **Docker Toolbox** (VM), do one of the following:
|
||||
|
||||
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](/documentation/#upgrading-laradock)
|
||||
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/Laradock-ToolBox) branch. *(outdated)*
|
||||
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/LaraDock-ToolBox) branch. *(outdated)*
|
||||
|
||||
<br>
|
||||
|
||||
@ -161,7 +161,7 @@ We recommend using a Docker version which is newer than 1.13.
|
||||
cp env-example .env
|
||||
```
|
||||
|
||||
You can edit the `.env` file to choose which software 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 `;`.
|
||||
|
||||
@ -213,7 +213,16 @@ Open your PHP project's `.env` file or whichever configuration file you are read
|
||||
DB_HOST=mysql
|
||||
```
|
||||
|
||||
You need to use the Laradock's default DB credentials which can be found in the `.env` file (ex: `MYSQL_USER=`).
|
||||
Or you can change them and rebuild the container.
|
||||
|
||||
*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
|
||||
|
||||
<br>
|
||||
5 - Open your browser and visit your localhost address `http://localhost/`. If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`.
|
||||
5 - Open your browser and visit your localhost address.
|
||||
|
||||
If you followed the multiple projects setup, you can visit `http://project-1.test/` and `http://project-2.test/`.
|
||||
|
||||
[http://localhost:8080](http://localhost:8080)
|
||||
|
||||
Make sure you add use the right port number as provided by your running server. Ex: NGINX uses port 8080 by default while Apache2 uses 80.
|
||||
|
@ -1,21 +1,14 @@
|
||||
---
|
||||
title: Guides
|
||||
title: 4. Guides
|
||||
type: index
|
||||
weight: 4
|
||||
---
|
||||
|
||||
|
||||
|
||||
* [Production Setup on Digital Ocean](#Digital-Ocean)
|
||||
* [PHPStorm XDebug Setup](#PHPStorm-Debugging)
|
||||
* [Running Laravel Dusk Test](#Laravel-Dusk)
|
||||
|
||||
|
||||
|
||||
<a name="Digital-Ocean"></a>
|
||||
# Production Setup on Digital Ocean
|
||||
## Production Setup on Digital Ocean
|
||||
|
||||
## Install Docker
|
||||
### Install Docker
|
||||
|
||||
- Visit [DigitalOcean](https://cloud.digitalocean.com/login) and login.
|
||||
- Click the `Create Droplet` button.
|
||||
@ -24,7 +17,7 @@ weight: 4
|
||||
- Continue creating the droplet as you normally would.
|
||||
- If needed, check your e-mail for the droplet root password.
|
||||
|
||||
## SSH to your Server
|
||||
### SSH to your Server
|
||||
|
||||
Find the IP address of the droplet in the DigitalOcean interface. Use it to connect to the server.
|
||||
|
||||
@ -40,7 +33,7 @@ You can now check if Docker is available:
|
||||
$root@server:~# docker
|
||||
```
|
||||
|
||||
## Set Up Your Laravel Project
|
||||
### Set Up Your Laravel Project
|
||||
|
||||
```
|
||||
$root@server:~# apt-get install git
|
||||
@ -50,18 +43,12 @@ $root@server:~/laravel/ git submodule add https://github.com/Laradock/laradock.g
|
||||
$root@server:~/laravel/ cd laradock
|
||||
```
|
||||
|
||||
## Install docker-compose command
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock# curl -L https://github.com/docker/compose/releases/download/1.8.0/run.sh > /usr/local/bin/docker-compose
|
||||
$root@server:~/chmod +x /usr/local/bin/docker-compose
|
||||
```
|
||||
## Enter the laradock folder and rename env-example to .env.
|
||||
### Enter the laradock folder and rename env-example to .env.
|
||||
```
|
||||
$root@server:~/laravel/laradock# cp env-example .env
|
||||
```
|
||||
|
||||
## Create Your Laradock Containers
|
||||
### Create Your Laradock Containers
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock# docker-compose up -d nginx mysql
|
||||
@ -69,13 +56,31 @@ $root@server:~/laravel/laradock# docker-compose up -d nginx mysql
|
||||
|
||||
Note that more containers are available, find them in the [docs](http://laradock.io/introduction/#supported-software-containers) or the `docker-compose.yml` file.
|
||||
|
||||
## Go to Your Workspace
|
||||
### Go to Your Workspace
|
||||
|
||||
```
|
||||
docker-compose exec workspace bash
|
||||
```
|
||||
|
||||
## Install and configure Laravel
|
||||
### Execute commands
|
||||
|
||||
If you want to only execute some command and don't want to enter bash, you can execute `docker-compose run workspace <command>`.
|
||||
|
||||
```
|
||||
docker-compose run workspace php artisan migrate
|
||||
```
|
||||
|
||||
### Prepare for Visual Studio Code remote development
|
||||
|
||||
If you want to use Visual Studio Code for [remote development](https://code.visualstudio.com/docs/remote/containers) directly on your `workspace` container, copy file `devcontainer.example.json` to `devcontainer.json` and customize it (see [devcontainer.json reference](https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference) for more options):
|
||||
```
|
||||
cd .devcontainer
|
||||
cp devcontainer.example.json devcontainer.json
|
||||
```
|
||||
|
||||
Then open your `laradock` folder in Visual Studio Code and click on popup button **Reopen in Container**.
|
||||
|
||||
### Install and configure Laravel
|
||||
|
||||
Let's install Laravel's dependencies, add the `.env` file, generate the key and give proper permissions to the cache folder.
|
||||
|
||||
@ -98,7 +103,7 @@ It should show you the Laravel default welcome page.
|
||||
|
||||
However, we want it to show up using your custom domain name, as well.
|
||||
|
||||
## Using Your Own Domain Name
|
||||
### Using Your Own Domain Name
|
||||
|
||||
Login to your DNS provider, such as Godaddy, Namecheap.
|
||||
|
||||
@ -116,7 +121,7 @@ Visit: https://cloud.digitalocean.com/networking/domains
|
||||
|
||||
Add your domain name and choose the server IP you'd provision earlier.
|
||||
|
||||
## Serving Site With NGINX (HTTP ONLY)
|
||||
### Serving Site With NGINX (HTTP ONLY)
|
||||
|
||||
Go back to command line.
|
||||
|
||||
@ -140,14 +145,14 @@ And add `server_name` (your custom domain)
|
||||
server_name yourdomain.com;
|
||||
```
|
||||
|
||||
## Rebuild Your Nginx
|
||||
### Rebuild Your Nginx
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock# docker-compose down
|
||||
$root@server:~/laravel/laradock# docker-compose build nginx
|
||||
```
|
||||
|
||||
## Re Run Your Containers MYSQL and NGINX
|
||||
### Re Run Your Containers MYSQL and NGINX
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock/nginx# docker-compose up -d nginx mysql
|
||||
@ -155,7 +160,7 @@ $root@server:~/laravel/laradock/nginx# docker-compose up -d nginx mysql
|
||||
|
||||
**View Your Site with HTTP ONLY (http://yourdomain.com)**
|
||||
|
||||
## Run Site on SSL with Let's Encrypt Certificate
|
||||
### Run Site on SSL with Let's Encrypt Certificate
|
||||
|
||||
**Note: You need to Use Caddy here Instead of Nginx**
|
||||
|
||||
@ -194,10 +199,10 @@ tls serverbreaker@gmai.com
|
||||
|
||||
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
|
||||
@ -215,11 +220,11 @@ caddy_1 | http://yourdomain.com
|
||||
|
||||
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/caddy# docker-compose up -d mysql caddy
|
||||
$root@server:~/laravel/laradock# docker-compose down
|
||||
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
|
||||
```
|
||||
|
||||
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||
@ -236,326 +241,6 @@ View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||
- [https://caddyserver.com/docs/tls](https://caddyserver.com/docs/tls)
|
||||
- [https://caddyserver.com/docs/caddyfile](https://caddyserver.com/docs/caddyfile)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<a name="PHPStorm-Debugging"></a>
|
||||
# PHPStorm XDebug Setup
|
||||
|
||||
- [Intro](#Intro)
|
||||
- [Installation](#Installation)
|
||||
- [Customize laradock/docker-compose.yml](#CustomizeDockerCompose)
|
||||
- [Clean House](#InstallCleanHouse)
|
||||
- [Laradock Dial Tone](#InstallLaradockDialTone)
|
||||
- [hosts](#AddToHosts)
|
||||
- [Firewall](#FireWall)
|
||||
- [Enable xDebug on php-fpm](#enablePhpXdebug)
|
||||
- [PHPStorm Settings](#InstallPHPStorm)
|
||||
- [Configs](#InstallPHPStormConfigs)
|
||||
- [Usage](#Usage)
|
||||
- [Laravel](#UsageLaravel)
|
||||
- [Run ExampleTest](#UsagePHPStormRunExampleTest)
|
||||
- [Debug ExampleTest](#UsagePHPStormDebugExampleTest)
|
||||
- [Debug Web Site](#UsagePHPStormDebugSite)
|
||||
- [SSH into workspace](#SSHintoWorkspace)
|
||||
- [KiTTY](#InstallKiTTY)
|
||||
|
||||
<a name="Intro"></a>
|
||||
## Intro
|
||||
|
||||
Wiring up [Laravel](https://laravel.com/), [Laradock](https://github.com/Laradock/laradock) [Laravel+Docker] and [PHPStorm](https://www.jetbrains.com/phpstorm/) to play nice together complete with remote xdebug'ing as icing on top! Although this guide is based on `PHPStorm Windows`,
|
||||
you should be able to adjust accordingly. This guide was written based on Docker for Windows Native.
|
||||
|
||||
<a name="Installation"></a>
|
||||
## Installation
|
||||
|
||||
- This guide assumes the following:
|
||||
- you have already installed and are familiar with Laravel, Laradock and PHPStorm.
|
||||
- you have installed Laravel as a parent of `laradock`. This guide assumes `/c/_dk/laravel`.
|
||||
|
||||
<a name="AddToHosts"></a>
|
||||
## hosts
|
||||
- Add `laravel` to your hosts file located on Windows 10 at `C:\Windows\System32\drivers\etc\hosts`. It should be set to the IP of your running container. Mine is: `10.0.75.2`
|
||||
On Windows you can find it by opening Windows `Hyper-V Manager`.
|
||||
- 
|
||||
|
||||
- [Hosts File Editor](https://github.com/scottlerch/HostsFileEditor) makes it easy to change your hosts file.
|
||||
- Set `laravel` to your docker host IP. See [Example](images/photos/SimpleHostsEditor/AddHost_laravel.png).
|
||||
|
||||
|
||||
<a name="FireWall"></a>
|
||||
## Firewall
|
||||
Your PHPStorm will need to be able to receive a connection from PHP xdebug either your running workspace or php-fpm containers on port 9000. This means that your Windows Firewall should either enable connections from the Application PHPStorm OR the port.
|
||||
|
||||
- It is important to note that if the Application PHPStorm is NOT enabled in the firewall, you will not be able to recreate a rule to override that.
|
||||
- Also be aware that if you are installing/upgrade different versions of PHPStorm, you MAY have orphaned references to PHPStorm in your Firewall! You may decide to remove orphaned references however in either case, make sure that they are set to receive public TCP traffic.
|
||||
|
||||
### Edit laradock/docker-compose.yml
|
||||
Set the following variables:
|
||||
```
|
||||
### Workspace Utilities Container ###############
|
||||
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
- INSTALL_WORKSPACE_SSH=true
|
||||
...
|
||||
|
||||
|
||||
### PHP-FPM Container #####################
|
||||
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
|
||||
```
|
||||
|
||||
### Edit xdebug.ini files
|
||||
- `laradock/workspace/xdebug.ini`
|
||||
- `laradock/php-fpm/xdebug.ini`
|
||||
|
||||
Set the following variables:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
xdebug.cli_color=1
|
||||
```
|
||||
|
||||
|
||||
<a name="InstallCleanHouse"></a>
|
||||
### Need to clean house first?
|
||||
|
||||
Make sure you are starting with a clean state. For example, do you have other Laradock containers and images?
|
||||
Here are a few things I use to clean things up.
|
||||
|
||||
- Delete all containers using `grep laradock_` on the names, see: [Remove all containers based on docker image name](https://linuxconfig.org/remove-all-containners-based-on-docker-image-name).
|
||||
|
||||
`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}`
|
||||
|
||||
- Delete all images containing `laradock`.
|
||||
|
||||
`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}`
|
||||
**Note:** This will only delete images that were built with `Laradock`, **NOT** `laradock/*` which are pulled down by `Laradock` such as `laradock/workspace`, etc.
|
||||
**Note:** Some may fail with:
|
||||
`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images`
|
||||
|
||||
- I added this to my `.bashrc` to remove orphaned images.
|
||||
|
||||
```
|
||||
dclean() {
|
||||
processes=`docker ps -q -f status=exited`
|
||||
if [ -n "$processes" ]; then
|
||||
docker rm $processes
|
||||
fi
|
||||
|
||||
images=`docker images -q -f dangling=true`
|
||||
if [ -n "$images" ]; then
|
||||
docker rmi $images
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
- If you frequently switch configurations for Laradock, you may find that adding the following and added to your `.bashrc` or equivalent useful:
|
||||
|
||||
```
|
||||
# remove laravel* containers
|
||||
# remove laravel_* images
|
||||
dcleanlaradockfunction()
|
||||
{
|
||||
echo 'Removing ALL containers associated with laradock'
|
||||
docker ps -a | awk '{ print $1,$2 }' | grep laradock | awk '{print $1}' | xargs -I {} docker rm {}
|
||||
|
||||
# remove ALL images associated with laradock_
|
||||
# does NOT delete laradock/* which are hub images
|
||||
echo 'Removing ALL images associated with laradock_'
|
||||
docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}
|
||||
|
||||
echo 'Listing all laradock docker hub images...'
|
||||
docker images | grep laradock
|
||||
|
||||
echo 'dcleanlaradock completed'
|
||||
}
|
||||
# associate the above function with an alias
|
||||
# so can recall/lookup by typing 'alias'
|
||||
alias dcleanlaradock=dcleanlaradockfunction
|
||||
```
|
||||
|
||||
<a name="InstallLaradockDialTone"></a>
|
||||
## Let's get a dial-tone with Laravel
|
||||
|
||||
```
|
||||
# barebones at this point
|
||||
docker-compose up -d nginx mysql
|
||||
|
||||
# run
|
||||
docker-compose ps
|
||||
|
||||
# Should see:
|
||||
Name Command State Ports
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
|
||||
laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
|
||||
laradock_php-fpm_1 php-fpm Up 9000/tcp
|
||||
laradock_volumes_data_1 true Exit 0
|
||||
laradock_volumes_source_1 true Exit 0
|
||||
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
|
||||
```
|
||||
|
||||
<a name="enablePhpXdebug"></a>
|
||||
## Enable xDebug on php-fpm
|
||||
|
||||
In a host terminal sitting in the laradock folder, run: `.php-fpm/xdebug status`
|
||||
You should see something like the following:
|
||||
|
||||
```
|
||||
xDebug status
|
||||
laradock_php-fpm_1
|
||||
PHP 7.0.9 (cli) (built: Aug 10 2016 19:45:48) ( NTS )
|
||||
Copyright (c) 1997-2016 The PHP Group
|
||||
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
||||
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
||||
```
|
||||
|
||||
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
|
||||
`php-fpm` is started and listening for debug info on port 9000.
|
||||
|
||||
|
||||
<a name="InstallPHPStormConfigs"></a>
|
||||
## PHPStorm Settings
|
||||
|
||||
- Here are some settings that are known to work:
|
||||
- `Settings/BuildDeploymentConnection`
|
||||
- 
|
||||
|
||||
- `Settings/BuildDeploymentConnectionMappings`
|
||||
- 
|
||||
|
||||
- `Settings/BuildDeploymentDebugger`
|
||||
- 
|
||||
|
||||
- `Settings/EditRunConfigurationRemoteWebDebug`
|
||||
- 
|
||||
|
||||
- `Settings/EditRunConfigurationRemoteExampleTestDebug`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPDebug`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPInterpreters`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPPHPUnit`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPServers`
|
||||
- 
|
||||
|
||||
- `RemoteHost`
|
||||
To switch on this view, go to: `Menu/Tools/Deployment/Browse Remote Host`.
|
||||
- 
|
||||
|
||||
- `RemoteWebDebug`
|
||||
- 
|
||||
|
||||
- `EditRunConfigurationRemoteWebDebug`
|
||||
Go to: `Menu/Run/Edit Configurations`.
|
||||
- 
|
||||
|
||||
- `EditRunConfigurationRemoteExampleTestDebug`
|
||||
Go to: `Menu/Run/Edit Configurations`.
|
||||
- 
|
||||
|
||||
- `WindowsFirewallAllowedApps`
|
||||
Go to: `Control Panel\All Control Panel Items\Windows Firewall\Allowed apps`.
|
||||
- 
|
||||
|
||||
- `hosts`
|
||||
Edit: `C:\Windows\System32\drivers\etc\hosts`.
|
||||
- 
|
||||
|
||||
- [Enable xDebug on php-fpm](#enablePhpXdebug)
|
||||
|
||||
|
||||
|
||||
<a name="Usage"></a>
|
||||
## Usage
|
||||
|
||||
<a name="UsagePHPStormRunExampleTest"></a>
|
||||
### Run ExampleTest
|
||||
- right-click on `tests/ExampleTest.php`
|
||||
- Select: `Run 'ExampleTest.php'` or `Ctrl+Shift+F10`.
|
||||
- Should pass!! You just ran a remote test via SSH!
|
||||
|
||||
<a name="UsagePHPStormDebugExampleTest"></a>
|
||||
### Debug ExampleTest
|
||||
- Open to edit: `tests/ExampleTest.php`
|
||||
- Add a BreakPoint on line 16: `$this->visit('/')`
|
||||
- right-click on `tests/ExampleTest.php`
|
||||
- Select: `Debug 'ExampleTest.php'`.
|
||||
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
|
||||
- 
|
||||
|
||||
|
||||
<a name="UsagePHPStormDebugSite"></a>
|
||||
### Debug WebSite
|
||||
- In case xDebug is disabled, from the `laradock` folder run:
|
||||
`.php-fpm/xdebug start`.
|
||||
- To switch xdebug off, run:
|
||||
`.php-fpm/xdebug stop`
|
||||
|
||||
- Start Remote Debugging
|
||||
- 
|
||||
|
||||
- Open to edit: `bootstrap/app.php`
|
||||
- Add a BreakPoint on line 14: `$app = new Illuminate\Foundation\Application(`
|
||||
- Reload [Laravel Site](http://laravel/)
|
||||
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
|
||||
- 
|
||||
|
||||
|
||||
<a name="SSHintoWorkspace"></a>
|
||||
## Let's shell into workspace
|
||||
Assuming that you are in laradock folder, type:
|
||||
`ssh -i workspace/insecure_id_rsa -p2222 root@laravel`
|
||||
**Cha Ching!!!!**
|
||||
- `workspace/insecure_id_rsa.ppk` may become corrupted. In which case:
|
||||
- fire up `puttygen`
|
||||
- import `workspace/insecure_id_rsa`
|
||||
- save private key to `workspace/insecure_id_rsa.ppk`
|
||||
|
||||
<a name="InstallKiTTY"></a>
|
||||
|
||||
### KiTTY
|
||||
[Kitty](http://www.9bis.net/kitty/) KiTTY is a fork from version 0.67 of PuTTY.
|
||||
|
||||
- Here are some settings that are working for me:
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
@ -563,13 +248,9 @@ Assuming that you are in laradock folder, type:
|
||||
<br>
|
||||
|
||||
<a name="Laravel-Dusk"></a>
|
||||
# Running Laravel Dusk Tests
|
||||
## Running Laravel Dusk Tests
|
||||
|
||||
- [Option 1: Without Selenium](#option1-dusk)
|
||||
- [Option 2: With Selenium](#option2-dusk)
|
||||
|
||||
<a name="option1-dusk"></a>
|
||||
## Option 1: Without Selenium
|
||||
### Option 1: Without Selenium
|
||||
|
||||
- [Intro](#option1-dusk-intro)
|
||||
- [Workspace Setup](#option1-workspace-setup)
|
||||
@ -577,14 +258,12 @@ Assuming that you are in laradock folder, type:
|
||||
- [Choose Chrome Driver Version (Optional)](#option1-choose-chrome-driver-version)
|
||||
- [Run Dusk Tests](#option1-run-dusk-tests)
|
||||
|
||||
<a name="option1-dusk-intro"></a>
|
||||
### Intro
|
||||
#### Intro
|
||||
|
||||
This is a guide to run Dusk tests in your `workspace` container with headless
|
||||
google-chrome and chromedriver. It has been tested with Laravel 5.4 and 5.5.
|
||||
|
||||
<a name="option1-workspace-setup"></a>
|
||||
### Workspace Setup
|
||||
#### Workspace Setup
|
||||
|
||||
Update your .env with following entries:
|
||||
|
||||
@ -604,8 +283,7 @@ Then run below to build your workspace.
|
||||
docker-compose build workspace
|
||||
```
|
||||
|
||||
<a name="option1-application-setup"></a>
|
||||
### Application Setup
|
||||
#### Application Setup
|
||||
|
||||
Run a `workspace` container and you will be inside the container at `/var/www` directory.
|
||||
|
||||
@ -670,15 +348,14 @@ abstract class DuskTestCase extends BaseTestCase
|
||||
}
|
||||
```
|
||||
|
||||
<a name="option1-choose-chrome-driver-version"></a>
|
||||
### Choose Chrome Driver Version (Optional)
|
||||
#### Choose Chrome Driver Version (Optional)
|
||||
|
||||
You could choose to use either:
|
||||
|
||||
1. Chrome Driver shipped with Laravel Dusk. (Default)
|
||||
2. Chrome Driver installed in `workspace` container. (Required tweak on DuskTestCase class)
|
||||
|
||||
For Laravel 2.x, you need to update `DuskTestCase#prepare` method if you wish to go with option #2.
|
||||
For Laravel Dusk 2.x, you need to update `DuskTestCase#prepare` method if you wish to go with option #2.
|
||||
|
||||
```
|
||||
|
||||
@ -698,7 +375,7 @@ abstract class DuskTestCase extends BaseTestCase
|
||||
}
|
||||
```
|
||||
|
||||
For Laravel 1.x, you need to add `DuskTestCase#buildChromeProcess` method if you wish to go with option #2.
|
||||
For Laravel Dusk 1.x, you need to add `DuskTestCase#buildChromeProcess` method if you wish to go with option #2.
|
||||
|
||||
```
|
||||
<?php
|
||||
@ -725,8 +402,7 @@ abstract class DuskTestCase extends BaseTestCase
|
||||
}
|
||||
```
|
||||
|
||||
<a name="option1-run-dusk-tests"></a>
|
||||
### Run Dusk Tests
|
||||
#### Run Dusk Tests
|
||||
|
||||
Run local server in `workspace` container and run Dusk tests.
|
||||
|
||||
@ -743,8 +419,7 @@ PHPUnit 6.4.0 by Sebastian Bergmann and contributors.
|
||||
Time: 837 ms, Memory: 6.00MB
|
||||
```
|
||||
|
||||
<a name="option2-dusk"></a>
|
||||
## Option 2: With Selenium
|
||||
### Option 2: With Selenium
|
||||
|
||||
- [Intro](#dusk-intro)
|
||||
- [DNS Setup](#dns-setup)
|
||||
@ -752,8 +427,7 @@ Time: 837 ms, Memory: 6.00MB
|
||||
- [Laravel Dusk Setup](#laravel-dusk-setup)
|
||||
- [Running Laravel Dusk Tests](#running-tests)
|
||||
|
||||
<a name="dusk-intro"></a>
|
||||
### Intro
|
||||
#### Intro
|
||||
Setting up Laravel Dusk tests to run with Laradock appears be something that
|
||||
eludes most Laradock users. This guide is designed to show you how to wire them
|
||||
up to work together. This guide is written with macOS and Linux in mind. As such,
|
||||
@ -763,8 +437,7 @@ for Windows-specific instructions.
|
||||
This guide assumes you know how to use a DNS forwarder such as `dnsmasq` or are comfortable
|
||||
with editing the `/etc/hosts` file for one-off DNS changes.
|
||||
|
||||
<a name="dns-setup"></a>
|
||||
### DNS Setup
|
||||
#### DNS Setup
|
||||
According to RFC-2606, only four TLDs are reserved for local testing[^1]:
|
||||
|
||||
- `.test`
|
||||
@ -797,8 +470,7 @@ For example, in your `/etc/hosts` file:
|
||||
This will ensure that when navigating to `myapp.test`, it will route the
|
||||
request to `127.0.0.1` which will be handled by Nginx in Laradock.
|
||||
|
||||
<a name="docker-compose"></a>
|
||||
### Docker Compose setup
|
||||
#### Docker Compose setup
|
||||
In order to make the Selenium container talk to the Nginx container appropriately,
|
||||
the `docker-compose.yml` needs to be edited to accommodate this. Make the following
|
||||
changes:
|
||||
@ -820,8 +492,7 @@ the Selenium container to make requests to the Nginx container, which is
|
||||
necessary for running Dusk tests. These changes also link the `nginx` environment
|
||||
variable to the domain you wired up in your hosts file.
|
||||
|
||||
<a name="laravel-dusk-setup"></a>
|
||||
### Laravel Dusk Setup
|
||||
#### Laravel Dusk Setup
|
||||
|
||||
In order to make Laravel Dusk make the proper request to the Selenium container,
|
||||
you have to edit the `DuskTestCase.php` file that's provided on the initial
|
||||
@ -831,13 +502,13 @@ Remote Web Driver attempts to use to set up the Selenium session.
|
||||
One recommendation for this is to add a separate config option in your `.env.dusk.local`
|
||||
so it's still possible to run your Dusk tests locally should you want to.
|
||||
|
||||
#### .env.dusk.local
|
||||
##### .env.dusk.local
|
||||
```
|
||||
...
|
||||
USE_SELENIUM=true
|
||||
```
|
||||
|
||||
#### DuskTestCase.php
|
||||
##### DuskTestCase.php
|
||||
```php
|
||||
abstract class DuskTestCase extends BaseTestCase
|
||||
{
|
||||
@ -857,8 +528,7 @@ abstract class DuskTestCase extends BaseTestCase
|
||||
}
|
||||
```
|
||||
|
||||
<a name="running-tests"></a>
|
||||
### Running Laravel Dusk Tests
|
||||
#### Running Laravel Dusk Tests
|
||||
|
||||
Now that you have everything set up, to run your Dusk tests, you have to SSH
|
||||
into the workspace container as you normally would:
|
||||
@ -883,3 +553,326 @@ This invokes the Dusk command from inside the workspace container but when the s
|
||||
execution, it returns your session to your project directory.
|
||||
|
||||
[^1]: [Don't Use .dev for Development](https://iyware.com/dont-use-dev-for-development/)
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<a name="PHPStorm-Debugging"></a>
|
||||
## PHPStorm XDebug Setup
|
||||
|
||||
- [Intro](#Intro)
|
||||
- [Installation](#Installation)
|
||||
- [Customize laradock/docker-compose.yml](#CustomizeDockerCompose)
|
||||
- [Clean House](#InstallCleanHouse)
|
||||
- [Laradock Dial Tone](#InstallLaradockDialTone)
|
||||
- [hosts](#AddToHosts)
|
||||
- [Firewall](#FireWall)
|
||||
- [Enable xDebug on php-fpm](#enablePhpXdebug)
|
||||
- [PHPStorm Settings](#InstallPHPStorm)
|
||||
- [Configs](#InstallPHPStormConfigs)
|
||||
- [Usage](#Usage)
|
||||
- [Laravel](#UsageLaravel)
|
||||
- [Run ExampleTest](#UsagePHPStormRunExampleTest)
|
||||
- [Debug ExampleTest](#UsagePHPStormDebugExampleTest)
|
||||
- [Debug Web Site](#UsagePHPStormDebugSite)
|
||||
- [SSH into workspace](#SSHintoWorkspace)
|
||||
- [KiTTY](#InstallKiTTY)
|
||||
|
||||
### Intro
|
||||
|
||||
Wiring up [Laravel](https://laravel.com/), [Laradock](https://github.com/Laradock/laradock) [Laravel+Docker] and [PHPStorm](https://www.jetbrains.com/phpstorm/) to play nice together complete with remote xdebug'ing as icing on top! Although this guide is based on `PHPStorm Windows`,
|
||||
you should be able to adjust accordingly. This guide was written based on Docker for Windows Native.
|
||||
|
||||
### Installation
|
||||
|
||||
- This guide assumes the following:
|
||||
- you have already installed and are familiar with Laravel, Laradock and PHPStorm.
|
||||
- you have installed Laravel as a parent of `laradock`. This guide assumes `/c/_dk/laravel`.
|
||||
|
||||
### hosts
|
||||
- Add `laravel` to your hosts file located on Windows 10 at `C:\Windows\System32\drivers\etc\hosts`. It should be set to the IP of your running container. Mine is: `10.0.75.2`
|
||||
On Windows you can find it by opening Windows `Hyper-V Manager`.
|
||||
- 
|
||||
|
||||
- [Hosts File Editor](https://github.com/scottlerch/HostsFileEditor) makes it easy to change your hosts file.
|
||||
- Set `laravel` to your docker host IP. See [Example](images/photos/SimpleHostsEditor/AddHost_laravel.png).
|
||||
|
||||
|
||||
### Firewall
|
||||
Your PHPStorm will need to be able to receive a connection from PHP xdebug either your running workspace or php-fpm containers on port 9000. This means that your Windows Firewall should either enable connections from the Application PHPStorm OR the port.
|
||||
|
||||
- It is important to note that if the Application PHPStorm is NOT enabled in the firewall, you will not be able to recreate a rule to override that.
|
||||
- Also be aware that if you are installing/upgrade different versions of PHPStorm, you MAY have orphaned references to PHPStorm in your Firewall! You may decide to remove orphaned references however in either case, make sure that they are set to receive public TCP traffic.
|
||||
|
||||
#### Edit laradock/docker-compose.yml
|
||||
Set the following variables:
|
||||
```
|
||||
### Workspace Utilities Container ###############
|
||||
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
- INSTALL_WORKSPACE_SSH=true
|
||||
...
|
||||
|
||||
|
||||
### PHP-FPM Container #####################
|
||||
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
|
||||
```
|
||||
|
||||
#### Edit xdebug.ini files
|
||||
- `laradock/workspace/xdebug.ini`
|
||||
- `laradock/php-fpm/xdebug.ini`
|
||||
|
||||
Set the following variables:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
xdebug.cli_color=1
|
||||
```
|
||||
|
||||
|
||||
#### Need to clean house first?
|
||||
|
||||
Make sure you are starting with a clean state. For example, do you have other Laradock containers and images?
|
||||
Here are a few things I use to clean things up.
|
||||
|
||||
- Delete all containers using `grep laradock_` on the names, see: [Remove all containers based on docker image name](https://linuxconfig.org/remove-all-containners-based-on-docker-image-name).
|
||||
|
||||
`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}`
|
||||
|
||||
- Delete all images containing `laradock`.
|
||||
|
||||
`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}`
|
||||
**Note:** This will only delete images that were built with `Laradock`, **NOT** `laradock/*` which are pulled down by `Laradock` such as `laradock/workspace`, etc.
|
||||
**Note:** Some may fail with:
|
||||
`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images`
|
||||
|
||||
- I added this to my `.bashrc` to remove orphaned images.
|
||||
|
||||
```
|
||||
dclean() {
|
||||
processes=`docker ps -q -f status=exited`
|
||||
if [ -n "$processes" ]; then
|
||||
docker rm $processes
|
||||
fi
|
||||
|
||||
images=`docker images -q -f dangling=true`
|
||||
if [ -n "$images" ]; then
|
||||
docker rmi $images
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
- If you frequently switch configurations for Laradock, you may find that adding the following and added to your `.bashrc` or equivalent useful:
|
||||
|
||||
```
|
||||
# remove laravel* containers
|
||||
# remove laravel_* images
|
||||
dcleanlaradockfunction()
|
||||
{
|
||||
echo 'Removing ALL containers associated with laradock'
|
||||
docker ps -a | awk '{ print $1,$2 }' | grep laradock | awk '{print $1}' | xargs -I {} docker rm {}
|
||||
|
||||
# remove ALL images associated with laradock_
|
||||
# does NOT delete laradock/* which are hub images
|
||||
echo 'Removing ALL images associated with laradock_'
|
||||
docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}
|
||||
|
||||
echo 'Listing all laradock docker hub images...'
|
||||
docker images | grep laradock
|
||||
|
||||
echo 'dcleanlaradock completed'
|
||||
}
|
||||
# associate the above function with an alias
|
||||
# so can recall/lookup by typing 'alias'
|
||||
alias dcleanlaradock=dcleanlaradockfunction
|
||||
```
|
||||
|
||||
|
||||
### Let's get a dial-tone with Laravel
|
||||
|
||||
```
|
||||
# barebones at this point
|
||||
docker-compose up -d nginx mysql
|
||||
|
||||
# run
|
||||
docker-compose ps
|
||||
|
||||
# Should see:
|
||||
Name Command State Ports
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
|
||||
laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
|
||||
laradock_php-fpm_1 php-fpm Up 9000/tcp
|
||||
laradock_volumes_data_1 true Exit 0
|
||||
laradock_volumes_source_1 true Exit 0
|
||||
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
|
||||
```
|
||||
|
||||
### Enable xDebug on php-fpm
|
||||
|
||||
In a host terminal sitting in the laradock folder, run: `./php-fpm/xdebug status`
|
||||
You should see something like the following:
|
||||
|
||||
```
|
||||
xDebug status
|
||||
laradock_php-fpm_1
|
||||
PHP 7.0.9 (cli) (built: Aug 10 2016 19:45:48) ( NTS )
|
||||
Copyright (c) 1997-2016 The PHP Group
|
||||
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
||||
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
||||
```
|
||||
|
||||
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
|
||||
`php-fpm` is started and listening for debug info on port 9000.
|
||||
|
||||
|
||||
### PHPStorm Settings
|
||||
|
||||
- Here are some settings that are known to work:
|
||||
- `Settings/BuildDeploymentConnection`
|
||||
- 
|
||||
|
||||
- `Settings/BuildDeploymentConnectionMappings`
|
||||
- 
|
||||
|
||||
- `Settings/BuildDeploymentDebugger`
|
||||
- 
|
||||
|
||||
- `Settings/EditRunConfigurationRemoteWebDebug`
|
||||
- 
|
||||
|
||||
- `Settings/EditRunConfigurationRemoteExampleTestDebug`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPDebug`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPInterpreters`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPPHPUnit`
|
||||
- 
|
||||
|
||||
- `Settings/LangsPHPServers`
|
||||
- 
|
||||
|
||||
- `RemoteHost`
|
||||
To switch on this view, go to: `Menu/Tools/Deployment/Browse Remote Host`.
|
||||
- 
|
||||
|
||||
- `RemoteWebDebug`
|
||||
- 
|
||||
|
||||
- `EditRunConfigurationRemoteWebDebug`
|
||||
Go to: `Menu/Run/Edit Configurations`.
|
||||
- 
|
||||
|
||||
- `EditRunConfigurationRemoteExampleTestDebug`
|
||||
Go to: `Menu/Run/Edit Configurations`.
|
||||
- 
|
||||
|
||||
- `WindowsFirewallAllowedApps`
|
||||
Go to: `Control Panel\All Control Panel Items\Windows Firewall\Allowed apps`.
|
||||
- 
|
||||
|
||||
- `hosts`
|
||||
Edit: `C:\Windows\System32\drivers\etc\hosts`.
|
||||
- 
|
||||
|
||||
- [Enable xDebug on php-fpm](#enablePhpXdebug)
|
||||
|
||||
|
||||
|
||||
### Usage
|
||||
|
||||
#### Run ExampleTest
|
||||
- right-click on `tests/ExampleTest.php`
|
||||
- Select: `Run 'ExampleTest.php'` or `Ctrl+Shift+F10`.
|
||||
- Should pass!! You just ran a remote test via SSH!
|
||||
|
||||
#### Debug ExampleTest
|
||||
- Open to edit: `tests/ExampleTest.php`
|
||||
- Add a BreakPoint on line 16: `$this->visit('/')`
|
||||
- right-click on `tests/ExampleTest.php`
|
||||
- Select: `Debug 'ExampleTest.php'`.
|
||||
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
|
||||
- 
|
||||
|
||||
#### Debug WebSite
|
||||
- In case xDebug is disabled, from the `laradock` folder run:
|
||||
`./php-fpm/xdebug start`.
|
||||
- To switch xdebug off, run:
|
||||
`./php-fpm/xdebug stop`
|
||||
|
||||
- Start Remote Debugging
|
||||
- 
|
||||
|
||||
- Open to edit: `bootstrap/app.php`
|
||||
- Add a BreakPoint on line 14: `$app = new Illuminate\Foundation\Application(`
|
||||
- Reload [Laravel Site](http://laravel/)
|
||||
- Should have stopped at the BreakPoint!! You are now debugging locally against a remote Laravel project via SSH!
|
||||
- 
|
||||
|
||||
|
||||
### Let's shell into workspace
|
||||
Assuming that you are in laradock folder, type:
|
||||
`ssh -i workspace/insecure_id_rsa -p2222 root@laravel`
|
||||
**Cha Ching!!!!**
|
||||
- `workspace/insecure_id_rsa.ppk` may become corrupted. In which case:
|
||||
- fire up `puttygen`
|
||||
- import `workspace/insecure_id_rsa`
|
||||
- save private key to `workspace/insecure_id_rsa.ppk`
|
||||
|
||||
#### KiTTY
|
||||
[Kitty](http://www.9bis.net/kitty/) KiTTY is a fork from version 0.67 of PuTTY.
|
||||
|
||||
- Here are some settings that are working for me:
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<a name="Setup remote debugging (PhpStorm)"></a>
|
||||
## Setup remote debugging for PhpStorm on Linux
|
||||
|
||||
- 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).
|
||||
|
||||
.
|
||||
|
||||
- Create a server with name `laradock` (matches **PHP_IDE_CONFIG** key in environment file) and make sure to map project root path with server correctly.
|
||||
|
||||
.
|
||||
|
||||
- Start listening for debug connections, place a breakpoint and you are good to go !
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Help & Questions
|
||||
title: 5. Help & Questions
|
||||
type: index
|
||||
weight: 5
|
||||
---
|
||||
@ -7,3 +7,121 @@ weight: 5
|
||||
Join the chat room on [Gitter](https://gitter.im/Laradock/laradock) and get help and support from the community.
|
||||
|
||||
You can as well can open an [issue](https://github.com/laradock/laradock/issues) on Github (will be labeled as Question) and discuss it with people on [Gitter](https://gitter.im/Laradock/laradock).
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Common-Problems"></a>
|
||||
# Common Problems
|
||||
|
||||
*Here's a list of the common problems you might face, and the possible solutions.*
|
||||
|
||||
|
||||
<br>
|
||||
## I see a blank (white) page instead of the Laravel 'Welcome' page!
|
||||
|
||||
Run the following command from the Laravel root directory:
|
||||
|
||||
```bash
|
||||
sudo chmod -R 777 storage bootstrap/cache
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I see "Welcome to nginx" instead of the Laravel App!
|
||||
|
||||
Use `http://127.0.0.1` instead of `http://localhost` in your browser.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I see an error message containing `address already in use` or `port is already allocated`
|
||||
|
||||
Make sure the ports for the services that you are trying to run (22, 80, 443, 3306, etc.) are not being used already by other programs on the host, such as a built in `apache`/`httpd` service or other development tools you have installed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I get NGINX error 404 Not Found on Windows.
|
||||
|
||||
1. Go to docker Settings on your Windows machine.
|
||||
2. Click on the `Shared Drives` tab and check the drive that contains your project files.
|
||||
3. Enter your windows username and password.
|
||||
4. Go to the `reset` tab and click restart docker.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## The time in my services does not match the current time
|
||||
|
||||
1. Make sure you've [changed the timezone](#Change-the-timezone).
|
||||
2. Stop and rebuild the containers (`docker-compose up -d --build <services>`)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
## I get MySQL connection refused
|
||||
|
||||
This error sometimes happens because your Laravel application isn't running on the container localhost IP (Which is 127.0.0.1). Steps to fix it:
|
||||
|
||||
* Option A
|
||||
1. Check your running Laravel application IP by dumping `Request::ip()` variable using `dd(Request::ip())` anywhere on your application. The result is the IP of your Laravel container.
|
||||
2. Change the `DB_HOST` variable on env with the IP that you received from previous step.
|
||||
* Option B
|
||||
1. Change the `DB_HOST` value to the same name as the MySQL docker container. The Laradock docker-compose file currently has this as `mysql`
|
||||
|
||||
## 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-419652646), Already fixed,just set `CHANGE_SOURCE` to false.
|
||||
|
||||
## Custom composer repo packagist url and npm registry url
|
||||
|
||||
In China, the origin source of composer and npm is very slow. You can add `WORKSPACE_NPM_REGISTRY` and `WORKSPACE_COMPOSER_REPO_PACKAGIST` config in `.env` to use your custom source.
|
||||
|
||||
Example:
|
||||
```bash
|
||||
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
|
||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
## I get `Module build failed: Error: write EPIPE` while compiling react application
|
||||
|
||||
When you run `npm build` or `yarn dev` building a react application using webpack with elixir you may receive a `Error: write EPIPE` while processing .jpg images.
|
||||
|
||||
This is caused of an outdated library for processing **.jpg files** in ubuntu 16.04.
|
||||
|
||||
To fix the problem you can follow those steps
|
||||
|
||||
1 - Open the `.env`.
|
||||
|
||||
2 - Search for `WORKSPACE_INSTALL_LIBPNG` or add the key if missing.
|
||||
|
||||
3 - Set the value to true:
|
||||
|
||||
```dotenv
|
||||
WORKSPACE_INSTALL_LIBPNG=true
|
||||
```
|
||||
|
||||
4 - Finally rebuild the workspace image
|
||||
|
||||
```bash
|
||||
docker-compose build workspace
|
||||
```
|
||||
|
||||
|
@ -1,24 +1,104 @@
|
||||
---
|
||||
title: Introduction
|
||||
title: 1. Introduction
|
||||
type: index
|
||||
weight: 1
|
||||
---
|
||||
|
||||
<b>Laradock is a full PHP development environment based on Docker.</b>
|
||||
|
||||
Supporting a variety of common services, all pre-configured to provide a full PHP development environment.
|
||||
|
||||
|
||||
<a name="features"></a>
|
||||
## Features
|
||||
|
||||
A full PHP development environment for Docker.
|
||||
- Easy switch between PHP versions: 7.4, 7.3, 7.2, 7.1, 5.6...
|
||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
||||
- Run your own stack: Memcached, HHVM, RabbitMQ...
|
||||
- Each software runs on its own container: PHP-FPM, NGINX, PHP-CLI...
|
||||
- Easy to customize any container, with simple edit to the `Dockerfile`.
|
||||
- All Images extends from an official base Image. (Trusted base Images).
|
||||
- Pre-configured NGINX to host any code at your root directory.
|
||||
- Can use Laradock per project, or single Laradock for all projects.
|
||||
- Easy to install/remove software's in Containers using environment variables.
|
||||
- Clean and well structured Dockerfiles (`Dockerfile`).
|
||||
- Latest version of the Docker Compose file (`docker-compose`).
|
||||
- Everything is visible and editable.
|
||||
- Fast Images Builds.
|
||||
|
||||
Includes pre-packaged Docker Images, all pre-configured to provide a wonderful PHP development environment.
|
||||
<br>
|
||||
|
||||
Laradock is well known in the Laravel community, as the project started with single focus on running Laravel projects on Docker. Later and due to the large adoption from the PHP community, it started supporting other PHP projects like Symfony, CodeIgniter, WordPress, Drupal...
|
||||
---
|
||||
### Use Docker First - Then Learn About It Later</q>
|
||||
---
|
||||
|
||||
|
||||

|
||||
<a name="sponsors"></a>
|
||||
## Sponsors
|
||||
|
||||
<a href="https://opencollective.com/laradock/sponsor/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/10/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/11/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/11/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/12/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/12/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/13/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/13/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/14/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/14/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/15/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/15/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/16/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/16/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/17/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/17/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/18/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/18/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/19/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/19/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/20/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/20/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/21/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/21/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/22/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/22/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/23/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/23/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/24/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/24/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/25/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/25/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/26/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/26/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/27/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/27/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/28/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/28/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/29/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/29/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/30/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/30/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/31/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/31/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/32/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/32/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/33/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/33/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/34/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/34/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/35/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/35/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/36/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/36/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/37/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/37/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/38/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/38/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/39/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/39/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/40/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/40/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/41/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/41/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/42/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/42/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/43/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/43/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/44/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/44/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/45/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/45/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/46/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/46/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/47/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/47/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/48/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/48/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/49/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/49/avatar.svg?requireActive=false"></a>
|
||||
|
||||
Support Laradock with your [organization](https://opencollective.com/laradock/contribute/).
|
||||
<br>
|
||||
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page.
|
||||
<br>
|
||||
For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>.
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
## Quick Overview
|
||||
|
||||
Let's see how easy it is to install `NGINX`, `PHP`, `Composer`, `MySQL`, `Redis` and `Beanstalkd`:
|
||||
Let's see how easy it is to setup our demo stack `PHP`, `NGINX`, `MySQL`, `Redis` and `Composer`:
|
||||
|
||||
1 - Clone Laradock inside your PHP project:
|
||||
|
||||
@ -55,55 +135,129 @@ That's it! enjoy :)
|
||||
|
||||
|
||||
|
||||
<a name="features"></a>
|
||||
## Features
|
||||
|
||||
- Easy switch between PHP versions: 7.2, 7.1, 5.6...
|
||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||
- Easy to customize any container, with simple edit to the `Dockerfile`.
|
||||
- All Images extends from an official base Image. (Trusted base Images).
|
||||
- Pre-configured NGINX to host any code at your root directory.
|
||||
- Can use Laradock per project, or single Laradock for all projects.
|
||||
- Easy to install/remove software's in Containers using environment variables.
|
||||
- Clean and well structured Dockerfiles (`Dockerfile`).
|
||||
- Latest version of the Docker Compose file (`docker-compose`).
|
||||
- Everything is visible and editable.
|
||||
- Fast Images Builds.
|
||||
- More to come every week..
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Supported-Containers"></a>
|
||||
## Supported Software (Images)
|
||||
## Supported Software (Docker Images)
|
||||
|
||||
In adhering to the separation of concerns principle as promoted by Docker, Laradock runs each software on its own Container.
|
||||
You can turn On/Off as many instances of as any container without worrying about the configurations, everything works like a charm.
|
||||
> 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.
|
||||
|
||||
> To run a chosen container from the list below, run `docker-compose up -d {container-name}`.
|
||||
> The container name `{container-name}` is the same as its folder name. Example to run the "PHP FPM" container use the name "php-fpm".
|
||||
|
||||
- **Web Servers:**
|
||||
- NGINX
|
||||
- Apache2
|
||||
- Caddy
|
||||
|
||||
- **Load Balancers:**
|
||||
- HAProxy
|
||||
- Traefik
|
||||
|
||||
- **Database Engines:**
|
||||
MySQL - MariaDB - Percona - MongoDB - Neo4j - RethinkDB - MSSQL - PostgreSQL - Postgres-PostGIS.
|
||||
- **Database Management:**
|
||||
PhpMyAdmin - Adminer - PgAdmin
|
||||
- **Cache Engines:**
|
||||
Redis - Memcached - Aerospike
|
||||
- **PHP Servers:**
|
||||
NGINX - Apache2 - Caddy
|
||||
- **PHP Compilers:**
|
||||
PHP FPM - HHVM
|
||||
- **Message Queueing:**
|
||||
Beanstalkd - RabbitMQ - PHP Worker
|
||||
- **Queueing Management:**
|
||||
Beanstalkd Console - RabbitMQ Console
|
||||
- **Random Tools:**
|
||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Portainer - Laravel Echo...
|
||||
- PHP FPM
|
||||
- HHVM
|
||||
|
||||
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.
|
||||
- **Database Management Systems:**
|
||||
- MySQL
|
||||
- PostgreSQL
|
||||
- PostGIS
|
||||
- MariaDB
|
||||
- Percona
|
||||
- MSSQL
|
||||
- MongoDB
|
||||
- MongoDB Web UI
|
||||
- Neo4j
|
||||
- CouchDB
|
||||
- RethinkDB
|
||||
- Cassandra
|
||||
|
||||
**Workspace Image Tools**
|
||||
PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush...
|
||||
|
||||
- **Database Management Apps:**
|
||||
- PhpMyAdmin
|
||||
- Adminer
|
||||
- PgAdmin
|
||||
|
||||
- **Cache Engines:**
|
||||
- Redis
|
||||
- Redis Web UI
|
||||
- Redis Cluster
|
||||
- Memcached
|
||||
- Aerospike
|
||||
- Varnish
|
||||
|
||||
- **Message Brokers:**
|
||||
- RabbitMQ
|
||||
- RabbitMQ Admin Console
|
||||
- Beanstalkd
|
||||
- Beanstalkd Admin Console
|
||||
- Eclipse Mosquitto
|
||||
- PHP Worker
|
||||
- Laravel Horizon
|
||||
- Gearman
|
||||
|
||||
- **Mail Servers:**
|
||||
- Mailu
|
||||
- Mailhog
|
||||
- MailDev
|
||||
|
||||
- **Log Management:**
|
||||
- GrayLog
|
||||
|
||||
- **Testing:**
|
||||
- Selenium
|
||||
|
||||
- **Monitoring:**
|
||||
- Grafana
|
||||
- NetData
|
||||
|
||||
- **Search Engines:**
|
||||
- ElasticSearch
|
||||
- Apache Solr
|
||||
- Manticore Search
|
||||
|
||||
- **IDE's**
|
||||
- ICE Coder
|
||||
- Theia
|
||||
- Web IDE
|
||||
|
||||
- **Miscellaneous:**
|
||||
- Workspace *(Laradock container that includes a rich set of pre-configured useful tools)*
|
||||
- `PHP CLI`
|
||||
- `Composer`
|
||||
- `Git`
|
||||
- `Vim`
|
||||
- `xDebug`
|
||||
- `Linuxbrew`
|
||||
- `Node`
|
||||
- `V8JS`
|
||||
- `Gulp`
|
||||
- `SQLite`
|
||||
- `Laravel Envoy`
|
||||
- `Deployer`
|
||||
- `Yarn`
|
||||
- `SOAP`
|
||||
- `Drush`
|
||||
- `Wordpress CLI`
|
||||
- Apache ZooKeeper *(Centralized service for distributed systems to a hierarchical key-value store)*
|
||||
- Kibana *(Visualize your Elasticsearch data and navigate the Elastic Stack)*
|
||||
- LogStash *(Server-side data processing pipeline that ingests data from a multitude of sources simultaneously)*
|
||||
- Jenkins *(automation server, that provides plugins to support building, deploying and automating any project)*
|
||||
- Certbot *(Automatically enable HTTPS on your website)*
|
||||
- Swoole *(Production-Grade Async programming Framework for PHP)*
|
||||
- SonarQube *(continuous inspection of code quality to perform automatic reviews with static analysis of code to detect bugs and more)*
|
||||
- Gitlab *(A single application for the entire software development lifecycle)*
|
||||
- PostGIS *(Database extender for PostgreSQL. It adds support for geographic objects allowing location queries to be run in SQL)*
|
||||
- Blackfire *(Empowers all PHP developers and IT/Ops to continuously verify and improve their app's performance)*
|
||||
- Laravel Echo *(Bring the power of WebSockets to your Laravel applications)*
|
||||
- Phalcon *(A PHP web framework based on the model–view–controller pattern)*
|
||||
- Minio *(Cloud storage server released under Apache License v2, compatible with Amazon S3)*
|
||||
- AWS EB CLI *(CLI that helps you deploy and manage your AWS Elastic Beanstalk applications and environments)*
|
||||
- Thumbor *(Photo thumbnail service)*
|
||||
- IPython *(Provides a rich architecture for interactive computing)*
|
||||
- Jupyter Hub *(Jupyter notebook for multiple users)*
|
||||
- Portainer *(Build and manage your Docker environments with ease)*
|
||||
- Docker Registry *(The Docker Registry implementation for storing and distributing Docker images)*
|
||||
- Docker Web UI *(A browser-based solution for browsing and modifying a private Docker registry)*
|
||||
|
||||
You can choose, which tools to install in your workspace container and other containers, from the `.env` file.
|
||||
|
||||
@ -112,75 +266,9 @@ You can choose, which tools to install in your workspace container and other con
|
||||
|
||||
|
||||
|
||||
If you can't find your Software in the list, build it yourself and submit it. Contributions are welcomed :)
|
||||
|
||||
|
||||
|
||||
## Sponsors
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Support this project by becoming a sponsor.
|
||||
|
||||
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
|
||||
|
||||
|
||||
|
||||
<a name="what-is-docker"></a>
|
||||
## What is Docker?
|
||||
|
||||
[Docker](https://www.docker.com) is an open platform for developing, shipping, and running applications.
|
||||
Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.
|
||||
With Docker, you can manage your infrastructure in the same ways you manage your applications.
|
||||
By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="why-docker-not-vagrant"></a>
|
||||
## Why Docker not Vagrant!?
|
||||
|
||||
[Vagrant](https://www.vagrantup.com) creates Virtual Machines in minutes while Docker creates Virtual Containers in seconds.
|
||||
|
||||
Instead of providing a full Virtual Machines, like you get with Vagrant, Docker provides you **lightweight** Virtual Containers, that share the same kernel and allow to safely execute independent processes.
|
||||
|
||||
In addition to the speed, Docker gives tons of features that cannot be achieved with Vagrant.
|
||||
|
||||
Most importantly Docker can run on Development and on Production (same environment everywhere). While Vagrant is designed for Development only, (so you have to re-provision your server on Production every time).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Demo"></a>
|
||||
## Demo Video
|
||||
|
||||
What's better than a **Demo Video**:
|
||||
|
||||
- Laradock v5.* (should be next!)
|
||||
- Laradock [v4.*](https://www.youtube.com/watch?v=TQii1jDa96Y)
|
||||
- Laradock [v2.*](https://www.youtube.com/watch?v=-DamFMczwDA)
|
||||
- Laradock [v0.3](https://www.youtube.com/watch?v=jGkyO6Is_aI)
|
||||
- Laradock [v0.1](https://www.youtube.com/watch?v=3YQsHe6oF80)
|
||||
|
||||
|
||||
|
||||
*If you can't find your Software in the list, build it yourself and submit it. Contributions are welcomed :)*
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
@ -191,24 +279,147 @@ You are welcome to join our chat room on Gitter.
|
||||
|
||||
[](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
||||
---
|
||||
|
||||
Laradock exists thanks to all the people who contribute.
|
||||
|
||||
## Project Maintainers
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/mahmoudz.png?s=150">
|
||||
<br>
|
||||
<strong>Mahmoud Zalt</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@mahmoudz</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/appleboy.png?s=150">
|
||||
<br>
|
||||
<strong>Bo-Yi Wu</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@appleboy</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/philtrep.png?s=150">
|
||||
<br>
|
||||
<strong>Philippe Trépanier</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@philtrep</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/mikeerickson.png?s=150">
|
||||
<br>
|
||||
<strong>Mike Erickson</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@mikeerickson</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/zeroc0d3.png?s=150">
|
||||
<br>
|
||||
<strong>Dwi Fahni Denni</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@zeroc0d3</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/thorerik.png?s=150">
|
||||
<br>
|
||||
<strong>Thor Erik</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@thorerik</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/winfried-van-loon.png?s=150">
|
||||
<br>
|
||||
<strong>Winfried van Loon</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@winfried-van-loon</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/sixlive.png?s=150">
|
||||
<br>
|
||||
<strong>TJ Miller</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@sixlive</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/bestlong.png?s=150">
|
||||
<br>
|
||||
<strong>Yu-Lung Shao (Allen)</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@bestlong</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/urukalo.png?s=150">
|
||||
<br>
|
||||
<strong>Milan Urukalo</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@urukalo</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/vwchu.png?s=150">
|
||||
<br>
|
||||
<strong>Vince Chu</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@vwchu</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/zuohuadong.png?s=150">
|
||||
<br>
|
||||
<strong>Huadong Zuo</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@zuohuadong</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/lanphan.png?s=150">
|
||||
<br>
|
||||
<strong>Lan Phan</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@lanphan</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/ahkui.png?s=150">
|
||||
<br>
|
||||
<strong>Ahkui</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@ahkui</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/join-us.png">
|
||||
<br>
|
||||
<strong>< Join Us ></strong>
|
||||
<br>
|
||||
<a href="https://github.com/laradock">@laradock</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Code Contributors
|
||||
|
||||
<a href="https://github.com/undefined/undefined/graphs/contributors"><img src="https://opencollective.com/laradock/contributors.svg?width=890&button=false" /></a>
|
||||
|
||||
---
|
||||
|
||||
<a name="Donations"></a>
|
||||
## Donations
|
||||
## Financial Contributors
|
||||
|
||||
> Help keeping the project development going, by [contributing](http://laradock.io/contributing) or donating a little.
|
||||
> Thanks in advance.
|
||||
Contribute and help us sustain the project.
|
||||
|
||||
Donate directly via [Paypal](https://www.paypal.me/mzalt)
|
||||
<b>Option 1:</b> Donate directly to [Paypal](https://paypal.me/mzmmzz).
|
||||
|
||||
[](https://www.paypal.me/mzalt)
|
||||
[](https://paypal.me/mzmmzz)
|
||||
|
||||
or become a backer on [Open Collective](https://opencollective.com/laradock#backer)
|
||||
|
||||
<a href="https://opencollective.com/laradock#backers" target="_blank"><img src="https://opencollective.com/laradock/backers.svg?width=890"></a>
|
||||
|
||||
or show your support via [Beerpay](https://beerpay.io/laradock/laradock)
|
||||
<b>Option 2:</b> Support us via [BeerPay](https://beerpay.io/laradock/laradock).
|
||||
|
||||
[](https://beerpay.io/laradock/laradock)
|
||||
|
||||
<b>Option 3:</b> Become a backer on [Open Collective](https://opencollective.com/laradock/contribute).
|
||||
|
||||
<a href="https://opencollective.com/laradock"><img src="https://opencollective.com/laradock/backer.svg?width=890"></a>
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: License
|
||||
title: 8. License
|
||||
type: index
|
||||
weight: 8
|
||||
---
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Related Projects
|
||||
title: 6. Related Projects
|
||||
type: index
|
||||
weight: 6
|
||||
---
|
||||
|
1
DOCUMENTATION/static/ads.txt
Normal file
1
DOCUMENTATION/static/ads.txt
Normal file
@ -0,0 +1 @@
|
||||
google.com, pub-9826129398689742, DIRECT, f08c47fec0942fa0
|
30
DOCUMENTATION/static/custom-style.css
Normal file
30
DOCUMENTATION/static/custom-style.css
Normal file
@ -0,0 +1,30 @@
|
||||
/* Custom CSS */
|
||||
|
||||
.article a {
|
||||
border-bottom: none;
|
||||
}
|
||||
.project .logo {
|
||||
width: 200px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.project .banner {
|
||||
height: 70px;
|
||||
padding: 25px;
|
||||
}
|
||||
.palette-primary-deep-purple .article h1{
|
||||
color: #7e57c2;
|
||||
font-size: 35px;
|
||||
}
|
||||
.palette-primary-deep-purple .article h2{
|
||||
|
||||
color: #ce2046;
|
||||
font-size: 25px;
|
||||
}
|
||||
.palette-primary-deep-purple .article h3{
|
||||
color: #851d54;
|
||||
font-size: 18px;
|
||||
}
|
||||
.palette-primary-deep-purple .article code{
|
||||
color: #851d54;
|
||||
background: #eeeeeea8;
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
{{ partial "head" . }}
|
||||
|
||||
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
|
||||
{{ $repo_id := replace .Site.Params.repo_url "https://github.com/" ""}}
|
||||
{{ .Scratch.Set "repo_id" $repo_id }}
|
||||
{{ $repo_id := replace .Site.Params.repo_url "https://github.com/" ""}}
|
||||
{{ .Scratch.Set "repo_id" $repo_id }}
|
||||
{{ end }}
|
||||
|
||||
<div class="backdrop">
|
||||
@ -25,23 +25,32 @@
|
||||
<article class="article">
|
||||
<div class="wrapper">
|
||||
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
<!-- Google Ads -->
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<!-- Laradock Horizontal -->
|
||||
<ins class="adsbygoogle"
|
||||
style="display:inline-block;width:890px;height:100px"
|
||||
data-ad-client="ca-pub-9826129398689742"
|
||||
data-ad-slot="2340256024"></ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
<!-- Wrapper arround google ads for seedanddew -->
|
||||
<div class='snd-ad'>
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
<!-- Google Ads -->
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<!-- Laradock Horizontal -->
|
||||
<ins class="adsbygoogle"
|
||||
style="display:inline-block;width:890px;height:100px"
|
||||
data-ad-client="ca-pub-9826129398689742"
|
||||
data-ad-slot="2340256024"></ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
</div>
|
||||
|
||||
<br><br><br>
|
||||
<img src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/laradock-logo.jpg" alt="laradock logo">
|
||||
|
||||
{{ range where .Site.Pages "Type" "index" }}
|
||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||
<br><br><br><br><br><br>
|
||||
<hr>
|
||||
<br>
|
||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||
|
||||
{{ .Content }}
|
||||
{{ .Content }}
|
||||
{{ end }}
|
||||
|
||||
<aside class="copyright" role="note">
|
||||
@ -52,8 +61,8 @@
|
||||
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
|
||||
using the
|
||||
<a href="http://github.com/digitalcraftsman/hugo-material-docs" target="_blank">Material</a> theme,
|
||||
by
|
||||
<a href="https://zalt.me">Mahmoud Zalt</a>.
|
||||
by
|
||||
<a href="https://zalt.me">Mahmoud Zalt</a>.
|
||||
</aside>
|
||||
|
||||
<footer class="footer">
|
||||
|
@ -5,7 +5,7 @@
|
||||
<div class="logo">
|
||||
<img src="{{ $.Site.BaseURL }}{{ . }}">
|
||||
</div>
|
||||
Laradock
|
||||
|
||||
{{ end }}
|
||||
<!--<div class="name">-->
|
||||
<!--<strong>{{ .Site.Title }} {{ with .Site.Params.version }}<span class="version">{{ . }}</span>{{ end }}</strong>-->
|
||||
|
@ -70,6 +70,27 @@
|
||||
{{ end }}
|
||||
<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 }}
|
||||
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||
|
238
README.md
Normal file
238
README.md
Normal file
@ -0,0 +1,238 @@
|
||||
<p align="center">
|
||||
<img src="/.github/home-page-images/laradock-logo.jpg?raw=true" alt="Laradock Logo"/>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<p align="center"><b>Full PHP development environment based on Docker.</b></p>
|
||||
|
||||
<p align="center">Supporting a variety of common services, all pre-configured to provide a full PHP development environment.</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="http://laradock.io/contributing"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="contributions welcome"></a>
|
||||
<a href="https://github.com/laradock/laradock/network"><img src="https://img.shields.io/github/forks/laradock/laradock.svg" alt="GitHub forks"></a>
|
||||
<a href="https://github.com/laradock/laradock/issues"><img src="https://img.shields.io/github/issues/laradock/laradock.svg" alt="GitHub issues"></a>
|
||||
<a href="https://github.com/laradock/laradock/stargazers"><a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/laradock/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/laradock/sponsors/badge.svg" /></a> <img src="https://img.shields.io/github/stars/laradock/laradock.svg" alt="GitHub stars"></a>
|
||||
<a href="https://travis-ci.org/laradock/laradock"><img src="https://travis-ci.org/laradock/laradock.svg?branch=master" alt="Build status"></a>
|
||||
<a href="https://raw.githubusercontent.com/laradock/laradock/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license"></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="http://zalt.me"><img src="http://forthebadge.com/images/badges/built-by-developers.svg" alt="forthebadge" width="240"></a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h4 align="center" style="color:#7d58c2">Use Docker First - Then Learn About It Later</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="http://laradock.io">
|
||||
<img src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/documentation-button.png" width="300px" alt="Laradock Documentation"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
## Awesome People
|
||||
Laradock exists thanks to all the people who contribute.
|
||||
|
||||
### Project Maintainers
|
||||
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/mahmoudz.png?s=150">
|
||||
<br>
|
||||
<strong>Mahmoud Zalt</strong>
|
||||
<br>
|
||||
<a href="https://github.com/Mahmoudz">@mahmoudz</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/appleboy.png?s=150">
|
||||
<br>
|
||||
<strong>Bo-Yi Wu</strong>
|
||||
<br>
|
||||
<a href="https://github.com/appleboy">@appleboy</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/philtrep.png?s=150">
|
||||
<br>
|
||||
<strong>Philippe Trépanier</strong>
|
||||
<br>
|
||||
<a href="https://github.com/philtrep">@philtrep</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/mikeerickson.png?s=150">
|
||||
<br>
|
||||
<strong>Mike Erickson</strong>
|
||||
<br>
|
||||
<a href="https://github.com/mikeerickson">@mikeerickson</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/zeroc0d3.png?s=150">
|
||||
<br>
|
||||
<strong>Dwi Fahni Denni</strong>
|
||||
<br>
|
||||
<a href="https://github.com/zeroc0d3">@zeroc0d3</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/thorerik.png?s=150">
|
||||
<br>
|
||||
<strong>Thor Erik</strong>
|
||||
<br>
|
||||
<a href="https://github.com/thorerik">@thorerik</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/winfried-van-loon.png?s=150">
|
||||
<br>
|
||||
<strong>Winfried van Loon</strong>
|
||||
<br>
|
||||
<a href="https://github.com/winfried-van-loon">@winfried-van-loon</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/sixlive.png?s=150">
|
||||
<br>
|
||||
<strong>TJ Miller</strong>
|
||||
<br>
|
||||
<a href="https://github.com/sixlive">@sixlive</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/bestlong.png?s=150">
|
||||
<br>
|
||||
<strong>Yu-Lung Shao (Allen)</strong>
|
||||
<br>
|
||||
<a href="https://github.com/bestlong">@bestlong</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/urukalo.png?s=150">
|
||||
<br>
|
||||
<strong>Milan Urukalo</strong>
|
||||
<br>
|
||||
<a href="https://github.com/urukalo">@urukalo</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/vwchu.png?s=150">
|
||||
<br>
|
||||
<strong>Vince Chu</strong>
|
||||
<br>
|
||||
<a href="https://github.com/vwchu">@vwchu</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/zuohuadong.png?s=150">
|
||||
<br>
|
||||
<strong>Huadong Zuo</strong>
|
||||
<br>
|
||||
<a href="https://github.com/zuohuadong">@zuohuadong</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/lanphan.png?s=150">
|
||||
<br>
|
||||
<strong>Lan Phan</strong>
|
||||
<br>
|
||||
<a href="https://github.com/lanphan">@lanphan</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://github.com/ahkui.png?s=150">
|
||||
<br>
|
||||
<strong>Ahkui</strong>
|
||||
<br>
|
||||
<a href="https://github.com/ahkui">@ahkui</a>
|
||||
</td>
|
||||
<td align="center" valign="top">
|
||||
<img width="125" height="125" src="https://raw.githubusercontent.com/laradock/laradock/master/.github/home-page-images/join-us.png">
|
||||
<br>
|
||||
<strong>< Join Us ></strong>
|
||||
<br>
|
||||
<a href="https://github.com/laradock">@laradock</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### Code Contributors
|
||||
|
||||
<a href="https://github.com/laradock/laradock/graphs/contributors"><img src="https://opencollective.com/laradock/contributors.svg?width=890&button=false" /></a>
|
||||
|
||||
### Financial Contributors
|
||||
|
||||
Contribute and help us sustain the project.
|
||||
|
||||
<b>Option 1:</b> Donate directly to [Paypal](https://paypal.me/mzmmzz).
|
||||
|
||||
[](https://paypal.me/mzmmzz)
|
||||
|
||||
<b>Option 2:</b> Support us via [BeerPay](https://beerpay.io/laradock/laradock).
|
||||
|
||||
[](https://beerpay.io/laradock/laradock)
|
||||
|
||||
<b>Option 3:</b> Become a backer on [Open Collective](https://opencollective.com/laradock/contribute).
|
||||
|
||||
<a href="https://opencollective.com/laradock"><img src="https://opencollective.com/laradock/backer.svg?width=890"></a>
|
||||
|
||||
## Sponsors
|
||||
|
||||
<a href="https://opencollective.com/laradock/sponsor/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/10/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/11/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/11/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/12/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/12/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/13/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/13/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/14/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/14/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/15/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/15/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/16/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/16/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/17/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/17/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/18/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/18/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/19/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/19/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/20/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/20/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/21/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/21/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/22/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/22/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/23/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/23/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/24/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/24/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/25/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/25/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/26/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/26/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/27/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/27/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/28/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/28/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/29/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/29/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/30/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/30/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/31/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/31/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/32/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/32/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/33/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/33/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/34/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/34/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/35/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/35/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/36/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/36/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/37/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/37/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/38/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/38/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/39/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/39/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/40/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/40/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/41/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/41/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/42/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/42/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/43/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/43/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/44/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/44/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/45/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/45/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/46/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/46/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/47/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/47/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/48/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/48/avatar.svg?requireActive=false"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/49/website?requireActive=false" target="_blank"><img src="https://opencollective.com/laradock/sponsor/49/avatar.svg?requireActive=false"></a>
|
||||
|
||||
Support Laradock with your [organization](https://opencollective.com/laradock/contribute/).
|
||||
<br>
|
||||
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page.
|
||||
<br>
|
||||
For more info contact <a href = "mailto: support@laradock.io">support@laradock.io</a>.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE)
|
@ -1,7 +1,4 @@
|
||||
FROM adminer:4.3.0
|
||||
|
||||
# Version 4.3.1 contains PostgreSQL login errors. See docs.
|
||||
# See https://sourceforge.net/p/adminer/bugs-and-features/548/
|
||||
FROM adminer:4
|
||||
|
||||
LABEL maintainer="Patrick Artounian <partounian@gmail.com>"
|
||||
|
||||
@ -16,11 +13,15 @@ ARG INSTALL_MSSQL=false
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
set -xe \
|
||||
&& apk --update add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc unixodbc-dev \
|
||||
&& pecl channel-update pecl.php.net \
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \
|
||||
&& echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \
|
||||
# && apk --update add --no-cache --virtual .phpize-deps $PHPIZE_DEPS unixodbc unixodbc-dev \
|
||||
# && pecl channel-update pecl.php.net \
|
||||
# && pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
# && echo "extension=sqlsrv.so" > /usr/local/etc/php/conf.d/20-sqlsrv.ini \
|
||||
# && echo "extension=pdo_sqlsrv.so" > /usr/local/etc/php/conf.d/20-pdo_sqlsrv.ini \
|
||||
&& apk --update add --no-cache freetds unixodbc \
|
||||
&& apk --update add --no-cache --virtual .build-deps $PHPIZE_DEPS freetds-dev unixodbc-dev \
|
||||
&& docker-php-ext-install pdo_dblib \
|
||||
&& apk del .build-deps \
|
||||
;fi
|
||||
|
||||
USER adminer
|
||||
|
@ -1,7 +1,3 @@
|
||||
FROM aerospike:latest
|
||||
|
||||
LABEL maintainer="Luciano Jr <luciano@lucianojr.com.br>"
|
||||
|
||||
RUN rm /etc/aerospike/aerospike.conf
|
||||
|
||||
COPY aerospike.conf /etc/aerospike/aerospike.conf
|
||||
|
@ -1,77 +0,0 @@
|
||||
# Aerospike database configuration file.
|
||||
|
||||
# This stanza must come first.
|
||||
service {
|
||||
user root
|
||||
group root
|
||||
paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
|
||||
pidfile /var/run/aerospike/asd.pid
|
||||
service-threads 4
|
||||
transaction-queues 4
|
||||
transaction-threads-per-queue 4
|
||||
proto-fd-max 15000
|
||||
}
|
||||
|
||||
logging {
|
||||
|
||||
# Log file must be an absolute path.
|
||||
file /var/log/aerospike/aerospike.log {
|
||||
context any info
|
||||
}
|
||||
|
||||
# Send log messages to stdout
|
||||
console {
|
||||
context any critical
|
||||
}
|
||||
}
|
||||
|
||||
network {
|
||||
service {
|
||||
address any
|
||||
port 3000
|
||||
|
||||
# Uncomment the following to set the `access-address` parameter to the
|
||||
# IP address of the Docker host. This will the allow the server to correctly
|
||||
# publish the address which applications and other nodes in the cluster to
|
||||
# use when addressing this node.
|
||||
# access-address <IPADDR>
|
||||
}
|
||||
|
||||
heartbeat {
|
||||
|
||||
# mesh is used for environments that do not support multicast
|
||||
mode mesh
|
||||
port 3002
|
||||
|
||||
# use asinfo -v 'tip:host=<ADDR>;port=3002' to inform cluster of
|
||||
# other mesh nodes
|
||||
mesh-port 3002
|
||||
|
||||
interval 150
|
||||
timeout 10
|
||||
}
|
||||
|
||||
fabric {
|
||||
port 3001
|
||||
}
|
||||
|
||||
info {
|
||||
port 3003
|
||||
}
|
||||
}
|
||||
|
||||
namespace test {
|
||||
replication-factor 2
|
||||
memory-size 1G
|
||||
default-ttl 5d # 5 days, use 0 to never expire/evict.
|
||||
|
||||
# storage-engine memory
|
||||
|
||||
# To use file storage backing, comment out the line above and use the
|
||||
# following lines instead.
|
||||
storage-engine device {
|
||||
file /opt/aerospike/data/test.dat
|
||||
filesize 4G
|
||||
data-in-memory true # Store data in memory in addition to file.
|
||||
}
|
||||
}
|
0
aws/.gitignore → aws-eb-cli/.gitignore
vendored
0
aws/.gitignore → aws-eb-cli/.gitignore
vendored
@ -1,16 +1,7 @@
|
||||
FROM phusion/baseimage:latest
|
||||
|
||||
FROM alpine
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y beanstalkd
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
VOLUME /var/lib/beanstalkd/data
|
||||
RUN apk add --no-cache beanstalkd
|
||||
|
||||
EXPOSE 11300
|
||||
|
||||
CMD ["/usr/bin/beanstalkd"]
|
||||
ENTRYPOINT ["/usr/bin/beanstalkd"]
|
||||
|
@ -1,17 +1,5 @@
|
||||
FROM zuohuadong/caddy:alpine
|
||||
FROM abiosoft/caddy:no-stats
|
||||
|
||||
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
||||
|
||||
ARG plugins="cors"
|
||||
|
||||
## ARG plugins="cors cgi cloudflare azure linode"
|
||||
|
||||
|
||||
RUN caddyplug install ${plugins}
|
||||
|
||||
CMD ["--conf", "/etc/caddy/Caddyfile", "--log", "stdout", "--agree=true"]
|
||||
|
||||
EXPOSE 80 443 2015
|
||||
|
||||
WORKDIR /var/www/public
|
||||
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
|
||||
|
@ -44,3 +44,8 @@ laradock2.demo:80 {
|
||||
#proxy domain.com
|
||||
#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
|
5
cassandra/Dockerfile
Normal file
5
cassandra/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
ARG CASSANDRA_VERSION=latest
|
||||
FROM bitnami/cassandra:${CASSANDRA_VERSION}
|
||||
|
||||
LABEL maintainer="Stefan Neuhaus <https://www.github.com/stefnats>"
|
||||
|
3
couchdb/Dockerfile
Normal file
3
couchdb/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM couchdb
|
||||
|
||||
EXPOSE 5984
|
File diff suppressed because it is too large
Load Diff
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>"
|
@ -1,3 +1,3 @@
|
||||
FROM docker.elastic.co/elasticsearch/elasticsearch:6.2.3
|
||||
FROM docker.elastic.co/elasticsearch/elasticsearch:7.1.1
|
||||
|
||||
EXPOSE 9200 9300
|
||||
|
516
env-example
516
env-example
@ -7,8 +7,11 @@
|
||||
# Point to the path of your applications code on your host
|
||||
APP_CODE_PATH_HOST=../
|
||||
|
||||
# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
|
||||
APP_CODE_PATH_CONTAINER=/var/www:cached
|
||||
# Point to where the `APP_CODE_PATH_HOST` should be in the container
|
||||
APP_CODE_PATH_CONTAINER=/var/www
|
||||
|
||||
# You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
|
||||
APP_CODE_CONTAINER_FLAG=:cached
|
||||
|
||||
# Choose storage path on your machine. For all storage systems
|
||||
DATA_PATH_HOST=~/.laradock/data
|
||||
@ -34,8 +37,14 @@ COMPOSE_PROJECT_NAME=laradock
|
||||
|
||||
### PHP Version ###########################################
|
||||
|
||||
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.2 - 7.1 - 7.0 - 5.6
|
||||
PHP_VERSION=7.2
|
||||
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM).
|
||||
# Accepted values: 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6
|
||||
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.1
|
||||
|
||||
### PHP Interpreter #######################################
|
||||
|
||||
@ -61,6 +70,8 @@ COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||
|
||||
# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
|
||||
CHANGE_SOURCE=false
|
||||
# Set CHANGE_SOURCE and UBUNTU_SOURCE option if you want to change the Ubuntu system sources.list file.
|
||||
UBUNTU_SOURCE=aliyun
|
||||
|
||||
### Docker Sync ###########################################
|
||||
|
||||
@ -74,25 +85,38 @@ DOCKER_SYNC_STRATEGY=native_osx
|
||||
### WORKSPACE #############################################
|
||||
|
||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
||||
WORKSPACE_COMPOSER_AUTH=false
|
||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
||||
WORKSPACE_NVM_NODEJS_ORG_MIRROR=
|
||||
WORKSPACE_INSTALL_NODE=true
|
||||
WORKSPACE_NODE_VERSION=stable
|
||||
WORKSPACE_NODE_VERSION=node
|
||||
WORKSPACE_NPM_REGISTRY=
|
||||
WORKSPACE_INSTALL_YARN=true
|
||||
WORKSPACE_YARN_VERSION=latest
|
||||
WORKSPACE_INSTALL_NPM_GULP=true
|
||||
WORKSPACE_INSTALL_NPM_BOWER=false
|
||||
WORKSPACE_INSTALL_NPM_VUE_CLI=true
|
||||
WORKSPACE_INSTALL_NPM_ANGULAR_CLI=false
|
||||
WORKSPACE_INSTALL_PHPREDIS=true
|
||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||
WORKSPACE_INSTALL_SUBVERSION=false
|
||||
WORKSPACE_INSTALL_XDEBUG=false
|
||||
WORKSPACE_INSTALL_PHPDBG=false
|
||||
WORKSPACE_INSTALL_SSH2=false
|
||||
WORKSPACE_INSTALL_LDAP=false
|
||||
WORKSPACE_INSTALL_GMP=false
|
||||
WORKSPACE_INSTALL_SOAP=false
|
||||
WORKSPACE_INSTALL_XSL=false
|
||||
WORKSPACE_INSTALL_IMAP=false
|
||||
WORKSPACE_INSTALL_MONGO=false
|
||||
WORKSPACE_INSTALL_AMQP=false
|
||||
WORKSPACE_INSTALL_CASSANDRA=false
|
||||
WORKSPACE_INSTALL_GEARMAN=false
|
||||
WORKSPACE_INSTALL_MSSQL=false
|
||||
WORKSPACE_INSTALL_DRUSH=false
|
||||
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
||||
WORKSPACE_INSTALL_WP_CLI=false
|
||||
WORKSPACE_INSTALL_AEROSPIKE=false
|
||||
WORKSPACE_INSTALL_V8JS=false
|
||||
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
||||
@ -103,24 +127,39 @@ WORKSPACE_INSTALL_LINUXBREW=false
|
||||
WORKSPACE_INSTALL_MC=false
|
||||
WORKSPACE_INSTALL_SYMFONY=false
|
||||
WORKSPACE_INSTALL_PYTHON=false
|
||||
WORKSPACE_INSTALL_POWERLINE=false
|
||||
WORKSPACE_INSTALL_SUPERVISOR=false
|
||||
WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=false
|
||||
WORKSPACE_INSTALL_IMAGEMAGICK=false
|
||||
WORKSPACE_INSTALL_TERRAFORM=false
|
||||
WORKSPACE_INSTALL_DUSK_DEPS=false
|
||||
WORKSPACE_INSTALL_PG_CLIENT=false
|
||||
WORKSPACE_INSTALL_PHALCON=false
|
||||
WORKSPACE_INSTALL_SWOOLE=false
|
||||
WORKSPACE_INSTALL_TAINT=false
|
||||
WORKSPACE_INSTALL_LIBPNG=false
|
||||
WORKSPACE_INSTALL_IONCUBE=false
|
||||
WORKSPACE_INSTALL_MYSQL_CLIENT=false
|
||||
WORKSPACE_INSTALL_PING=false
|
||||
WORKSPACE_INSTALL_SSHPASS=false
|
||||
WORKSPACE_INSTALL_INOTIFY=false
|
||||
WORKSPACE_INSTALL_FSWATCH=false
|
||||
WORKSPACE_INSTALL_YAML=false
|
||||
WORKSPACE_INSTALL_MAILPARSE=false
|
||||
WORKSPACE_PUID=1000
|
||||
WORKSPACE_PGID=1000
|
||||
WORKSPACE_CHROME_DRIVER_VERSION=2.32
|
||||
WORKSPACE_CHROME_DRIVER_VERSION=2.42
|
||||
WORKSPACE_TIMEZONE=UTC
|
||||
WORKSPACE_SSH_PORT=2222
|
||||
WORKSPACE_INSTALL_FFMPEG=false
|
||||
WORKSPACE_INSTALL_GNU_PARALLEL=false
|
||||
WORKSPACE_INSTALL_AST=true
|
||||
WORKSPACE_AST_VERSION=1.0.3
|
||||
|
||||
### PHP_FPM ###############################################
|
||||
|
||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
||||
PHP_FPM_INSTALL_BCMATH=true
|
||||
PHP_FPM_INSTALL_MYSQLI=true
|
||||
PHP_FPM_INSTALL_TOKENIZER=true
|
||||
PHP_FPM_INSTALL_INTL=true
|
||||
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
||||
PHP_FPM_INSTALL_OPCACHE=true
|
||||
@ -128,24 +167,69 @@ PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
||||
PHP_FPM_INSTALL_PHPREDIS=true
|
||||
PHP_FPM_INSTALL_MEMCACHED=false
|
||||
PHP_FPM_INSTALL_XDEBUG=false
|
||||
PHP_FPM_INSTALL_XHPROF=false
|
||||
PHP_FPM_INSTALL_PHPDBG=false
|
||||
PHP_FPM_INSTALL_IMAP=false
|
||||
PHP_FPM_INSTALL_MONGO=false
|
||||
PHP_FPM_INSTALL_AMQP=false
|
||||
PHP_FPM_INSTALL_CASSANDRA=false
|
||||
PHP_FPM_INSTALL_GEARMAN=false
|
||||
PHP_FPM_INSTALL_MSSQL=false
|
||||
PHP_FPM_INSTALL_SSH2=false
|
||||
PHP_FPM_INSTALL_SOAP=false
|
||||
PHP_FPM_INSTALL_XSL=false
|
||||
PHP_FPM_INSTALL_GMP=false
|
||||
PHP_FPM_INSTALL_EXIF=false
|
||||
PHP_FPM_INSTALL_AEROSPIKE=false
|
||||
PHP_FPM_INSTALL_PGSQL=false
|
||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||
PHP_FPM_INSTALL_LDAP=false
|
||||
PHP_FPM_INSTALL_PHALCON=false
|
||||
PHP_FPM_INSTALL_SWOOLE=false
|
||||
PHP_FPM_INSTALL_TAINT=false
|
||||
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||
PHP_FPM_INSTALL_POSTGIS=false
|
||||
PHP_FPM_INSTALL_PCNTL=false
|
||||
PHP_FPM_INSTALL_CALENDAR=false
|
||||
PHP_FPM_INSTALL_FAKETIME=false
|
||||
PHP_FPM_INSTALL_IONCUBE=false
|
||||
PHP_FPM_INSTALL_RDKAFKA=false
|
||||
PHP_FPM_INSTALL_GETTEXT=false
|
||||
PHP_FPM_FAKETIME=-0
|
||||
PHP_FPM_INSTALL_APCU=false
|
||||
PHP_FPM_INSTALL_CACHETOOL=false
|
||||
PHP_FPM_INSTALL_YAML=false
|
||||
PHP_FPM_INSTALL_ADDITIONAL_LOCALES=false
|
||||
PHP_FPM_INSTALL_MYSQL_CLIENT=false
|
||||
PHP_FPM_INSTALL_PING=false
|
||||
PHP_FPM_INSTALL_SSHPASS=false
|
||||
PHP_FPM_INSTALL_MAILPARSE=false
|
||||
PHP_FPM_FFMPEG=false
|
||||
PHP_FPM_ADDITIONAL_LOCALES="es_ES.UTF-8 fr_FR.UTF-8"
|
||||
|
||||
PHP_FPM_PUID=1000
|
||||
PHP_FPM_PGID=1000
|
||||
|
||||
### PHP_WORKER ############################################
|
||||
|
||||
PHP_WORKER_INSTALL_PGSQL=false
|
||||
PHP_WORKER_INSTALL_BCMATH=false
|
||||
PHP_WORKER_INSTALL_PHALCON=false
|
||||
PHP_WORKER_INSTALL_SOAP=false
|
||||
PHP_WORKER_INSTALL_ZIP_ARCHIVE=false
|
||||
PHP_WORKER_INSTALL_MYSQL_CLIENT=false
|
||||
PHP_WORKER_INSTALL_AMQP=false
|
||||
PHP_WORKER_INSTALL_GHOSTSCRIPT=false
|
||||
PHP_WORKER_INSTALL_SWOOLE=false
|
||||
PHP_WORKER_INSTALL_TAINT=false
|
||||
PHP_WORKER_INSTALL_FFMPEG=false
|
||||
PHP_WORKER_INSTALL_GMP=false
|
||||
PHP_WORKER_INSTALL_CASSANDRA=false
|
||||
PHP_WORKER_INSTALL_GEARMAN=false
|
||||
PHP_WORKER_INSTALL_REDIS=false
|
||||
|
||||
PHP_WORKER_PUID=1000
|
||||
PHP_WORKER_PGID=1000
|
||||
|
||||
### NGINX #################################################
|
||||
|
||||
@ -155,6 +239,13 @@ NGINX_HOST_LOG_PATH=./logs/nginx/
|
||||
NGINX_SITES_PATH=./nginx/sites/
|
||||
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
|
||||
NGINX_PHP_UPSTREAM_PORT=9000
|
||||
NGINX_SSL_PATH=./nginx/ssl/
|
||||
|
||||
### LARAVEL_HORIZON ################################################
|
||||
|
||||
LARAVEL_HORIZON_INSTALL_SOCKETS=false
|
||||
LARAVEL_HORIZON_INSTALL_PHPREDIS=true
|
||||
LARAVEL_HORIZON_INSTALL_MONGO=false
|
||||
|
||||
### APACHE ################################################
|
||||
|
||||
@ -181,6 +272,14 @@ MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
||||
|
||||
REDIS_PORT=6379
|
||||
|
||||
### REDIS CLUSTER #########################################
|
||||
|
||||
REDIS_CLUSTER_PORT_RANGE=7000-7005
|
||||
|
||||
### ZooKeeper #############################################
|
||||
|
||||
ZOOKEEPER_PORT=2181
|
||||
|
||||
### Percona ###############################################
|
||||
|
||||
PERCONA_DATABASE=homestead
|
||||
@ -198,6 +297,7 @@ MSSQL_PORT=1433
|
||||
|
||||
### MARIADB ###############################################
|
||||
|
||||
MARIADB_VERSION=latest
|
||||
MARIADB_DATABASE=default
|
||||
MARIADB_USER=default
|
||||
MARIADB_PASSWORD=secret
|
||||
@ -304,10 +404,30 @@ JENKINS_HOST_HTTP_PORT=8090
|
||||
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
||||
JENKINS_HOME=./jenkins/jenkins_home
|
||||
|
||||
### CONFLUENCE ###############################################
|
||||
CONFLUENCE_POSTGRES_INIT=true
|
||||
CONFLUENCE_VERSION=6.13-ubuntu-18.04-adoptopenjdk8
|
||||
CONFLUENCE_POSTGRES_DB=laradock_confluence
|
||||
CONFLUENCE_POSTGRES_USER=laradock_confluence
|
||||
CONFLUENCE_POSTGRES_PASSWORD=laradock_confluence
|
||||
CONFLUENCE_HOST_HTTP_PORT=8090
|
||||
|
||||
### GRAFANA ###############################################
|
||||
|
||||
GRAFANA_PORT=3000
|
||||
|
||||
### GRAYLOG ###############################################
|
||||
|
||||
# password must be 16 characters long
|
||||
GRAYLOG_PASSWORD=somesupersecretpassword
|
||||
# sha256 representation of the password
|
||||
GRAYLOG_SHA256_PASSWORD=b1cb6e31e172577918c9e7806c572b5ed8477d3f57aa737bee4b5b1db3696f09
|
||||
GRAYLOG_PORT=9000
|
||||
GRAYLOG_SYSLOG_TCP_PORT=514
|
||||
GRAYLOG_SYSLOG_UDP_PORT=514
|
||||
GRAYLOG_GELF_TCP_PORT=12201
|
||||
GRAYLOG_GELF_UDP_PORT=12201
|
||||
|
||||
### BLACKFIRE #############################################
|
||||
|
||||
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time. # visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
|
||||
@ -323,11 +443,9 @@ AEROSPIKE_SERVICE_PORT=3000
|
||||
AEROSPIKE_FABRIC_PORT=3001
|
||||
AEROSPIKE_HEARTBEAT_PORT=3002
|
||||
AEROSPIKE_INFO_PORT=3003
|
||||
|
||||
## Temp solution, this should be in the dockerfile
|
||||
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
|
||||
# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz"
|
||||
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
|
||||
AEROSPIKE_STORAGE_GB=1
|
||||
AEROSPIKE_MEM_GB=1
|
||||
AEROSPIKE_NAMESPACE=test
|
||||
|
||||
### RETHINKDB #############################################
|
||||
|
||||
@ -342,14 +460,384 @@ MONGODB_PORT=27017
|
||||
CADDY_HOST_HTTP_PORT=80
|
||||
CADDY_HOST_HTTPS_PORT=443
|
||||
CADDY_HOST_LOG_PATH=./logs/caddy
|
||||
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
|
||||
CADDY_CONFIG_PATH=./caddy/caddy
|
||||
|
||||
### LARAVEL ECHO SERVER ###################################
|
||||
|
||||
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_VERSION=5.5
|
||||
SOLR_PORT=8983
|
||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
SOLR_DATAIMPORTHANDLER_MSSQL=false
|
||||
|
||||
### GITLAB ###############################################
|
||||
GITLAB_POSTGRES_INIT=true
|
||||
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
|
||||
GITLAB_POSTGRES_HOST=postgres
|
||||
GITLAB_POSTGRES_USER=laradock_gitlab
|
||||
GITLAB_POSTGRES_PASSWORD=laradock_gitlab
|
||||
GITLAB_POSTGRES_DB=laradock_gitlab
|
||||
|
||||
### GITLAB-RUNNER ###############################################
|
||||
GITLAB_CI_SERVER_URL=http://localhost:8989
|
||||
GITLAB_RUNNER_REGISTRATION_TOKEN=<my-registration-token>
|
||||
GITLAB_REGISTER_NON_INTERACTIVE=true
|
||||
|
||||
### JUPYTERHUB ###############################################
|
||||
JUPYTERHUB_POSTGRES_INIT=true
|
||||
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_CUSTOM_CONFIG=./jupyterhub/jupyterhub_config.py
|
||||
JUPYTERHUB_USER_DATA=/jupyterhub
|
||||
JUPYTERHUB_USER_LIST=./jupyterhub/userlist
|
||||
JUPYTERHUB_ENABLE_NVIDIA=false
|
||||
|
||||
### IPYTHON ##################################################
|
||||
LARADOCK_IPYTHON_CONTROLLER_IP=127.0.0.1
|
||||
|
||||
### NETDATA ###############################################
|
||||
NETDATA_PORT=19999
|
||||
|
||||
### REDISWEBUI #########################################
|
||||
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
|
||||
# Welcome 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
|
||||
|
||||
|
||||
### TRAEFIK #################################################
|
||||
|
||||
TRAEFIK_HOST_HTTP_PORT=80
|
||||
TRAEFIK_HOST_HTTPS_PORT=443
|
||||
|
||||
|
||||
### MOSQUITTO #################################################
|
||||
|
||||
MOSQUITTO_PORT=9001
|
||||
|
||||
### COUCHDB ###################################################
|
||||
|
||||
COUCHDB_PORT=5984
|
||||
|
||||
### Manticore Search ##########################################
|
||||
|
||||
MANTICORE_CONFIG_PATH=./manticore/config
|
||||
MANTICORE_API_PORT=9312
|
||||
MANTICORE_SPHINXQL_PORT=9306
|
||||
MANTICORE_HTTP_PORT=9308
|
||||
|
||||
### pgadmin ##################################################
|
||||
# use this address http://ip6-localhost:5050
|
||||
PGADMIN_PORT=5050
|
||||
PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org
|
||||
PGADMIN_DEFAULT_PASSWORD=admin
|
||||
|
||||
### SONARQUBE ################################################
|
||||
## docker-compose up -d sonarqube
|
||||
## (If you encounter a database error)
|
||||
## docker-compose exec --user=root postgres
|
||||
## source docker-entrypoint-initdb.d/init_sonarqube_db.sh
|
||||
## (If you encounter logs error)
|
||||
## docker-compose run --user=root --rm sonarqube chown sonarqube:sonarqube /opt/sonarqube/logs
|
||||
|
||||
SONARQUBE_HOSTNAME=sonar.example.com
|
||||
SONARQUBE_PORT=9000
|
||||
SONARQUBE_POSTGRES_INIT=true
|
||||
SONARQUBE_POSTGRES_HOST=postgres
|
||||
SONARQUBE_POSTGRES_DB=sonar
|
||||
SONARQUBE_POSTGRES_USER=sonar
|
||||
SONARQUBE_POSTGRES_PASSWORD=sonarPass
|
||||
|
||||
### TOMCAT ################################################
|
||||
TOMCAT_VERSION=8.5.43
|
||||
TOMCAT_HOST_HTTP_PORT=8080
|
||||
|
||||
### CASSANDRA ################################################
|
||||
|
||||
# Cassandra Version, supported tags can be found at https://hub.docker.com/r/bitnami/cassandra/
|
||||
CASSANDRA_VERSION=latest
|
||||
# Inter-node cluster communication port. Default: 7000
|
||||
CASSANDRA_TRANSPORT_PORT_NUMBER=7000
|
||||
# JMX connections port. Default: 7199
|
||||
CASSANDRA_JMX_PORT_NUMBER=7199
|
||||
# Client port. Default: 9042.
|
||||
CASSANDRA_CQL_PORT_NUMBER=9042
|
||||
# Cassandra user name. Defaults: cassandra
|
||||
CASSANDRA_USER=cassandra
|
||||
# Password seeder will change the Cassandra default credentials at initialization. In clusters, only one node should be marked as password seeder. Default: no
|
||||
CASSANDRA_PASSWORD_SEEDER=no
|
||||
# Cassandra user password. Default: cassandra
|
||||
CASSANDRA_PASSWORD=cassandra
|
||||
# Number of tokens for the node. Default: 256.
|
||||
CASSANDRA_NUM_TOKENS=256
|
||||
# Hostname used to configure Cassandra. It can be either an IP or a domain. If left empty, it will be resolved to the machine IP.
|
||||
CASSANDRA_HOST=
|
||||
# Cluster name to configure Cassandra.. Defaults: My Cluster
|
||||
CASSANDRA_CLUSTER_NAME="My Cluster"
|
||||
# : Hosts that will act as Cassandra seeds. No defaults.
|
||||
CASSANDRA_SEEDS=
|
||||
# Snitch name (which determines which data centers and racks nodes belong to). Default SimpleSnitch
|
||||
CASSANDRA_ENDPOINT_SNITCH=SimpleSnitch
|
||||
# Enable the thrift RPC endpoint. Default :true
|
||||
CASSANDRA_ENABLE_RPC=true
|
||||
# Datacenter name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: dc1.
|
||||
CASSANDRA_DATACENTER=dc1
|
||||
# Rack name for the cluster. Ignored in SimpleSnitch endpoint snitch. Default: rack1.
|
||||
CASSANDRA_RACK=rack1
|
||||
|
||||
### GEARMAN ##################################################
|
||||
|
||||
# Gearman version to use. See available tags at https://hub.docker.com/r/artefactual/gearmand
|
||||
GEARMAN_VERSION=latest
|
||||
# Port to use (Default: 6379)
|
||||
GEARMAN_PORT=6379
|
||||
# Logging Level (Default: INFO)
|
||||
GEARMAN_VERBOSE=INFO
|
||||
# Persistent queue type to use (Default: builtin)
|
||||
GEARMAN_QUEUE_TYPE=builtin
|
||||
# Number of I/O threads to use (Default: 4)
|
||||
GEARMAN_THREADS=4
|
||||
# Number of backlog connections for listen (Default: 32)
|
||||
GEARMAN_BACKLOG=32
|
||||
# Number of file descriptors to allow for the process (Default is max allowed for user)
|
||||
GEARMAN_FILE_DESCRIPTORS=
|
||||
# Number of attempts to run the job before the job server removes it. (Default: no limit = 0)
|
||||
GEARMAN_JOB_RETRIES=0
|
||||
# Assign work in round-robin order per worker connection (Default: 0)
|
||||
GEARMAN_ROUND_ROBIN=0
|
||||
# Number of workers to wakeup for each job received (Default: 0)
|
||||
GEARMAN_WORKER_WAKEUP=0
|
||||
# Enable keepalive on sockets (Default: 0)
|
||||
GEARMAN_KEEPALIVE=0
|
||||
# The duration between two keepalive transmissions in idle condition (Default: 30)
|
||||
GEARMAN_KEEPALIVE_IDLE=30
|
||||
# The duration between two successive keepalive retransmissions, if acknowledgement to the previous keepalive transmission is not received (Default: 10)
|
||||
GEARMAN_KEEPALIVE_INTERVAL=10
|
||||
# The number of retransmissions to be carried out before declaring that remote end is not available (Default: 5)
|
||||
GEARMAN_KEEPALIVE_COUNT=5
|
||||
# Mysql server host (Default: localhost)
|
||||
GEARMAN_MYSQL_HOST=localhost
|
||||
# Mysql server port (Default: 3306)
|
||||
GEARMAN_MYSQL_PORT=3306
|
||||
# Mysql server user (Default: root)
|
||||
GEARMAN_MYSQL_USER=root
|
||||
# Mysql password
|
||||
GEARMAN_MYSQL_PASSWORD=
|
||||
# Path to file with mysql password(Docker secrets)
|
||||
GEARMAN_MYSQL_PASSWORD_FILE=
|
||||
# Database to use by Gearman (Default: Gearmand)
|
||||
GEARMAN_MYSQL_DB=Gearmand
|
||||
# Table to use by Gearman (Default: gearman_queue)
|
||||
GEARMAN_MYSQL_TABLE=gearman_queue
|
||||
|
5
gearman/Dockerfile
Normal file
5
gearman/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
ARG GEARMAN_VERSION=latest
|
||||
FROM artefactual/gearmand:${GEARMAN_VERSION}
|
||||
|
||||
LABEL maintainer="Stefan Neuhaus <https://www.github.com/stefnats>"
|
||||
|
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>"
|
3
graylog/Dockerfile
Normal file
3
graylog/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM graylog/graylog:3.0
|
||||
|
||||
EXPOSE 9000
|
481
graylog/config/graylog.conf
Normal file
481
graylog/config/graylog.conf
Normal file
@ -0,0 +1,481 @@
|
||||
############################
|
||||
# GRAYLOG CONFIGURATION FILE
|
||||
############################
|
||||
#
|
||||
# This is the Graylog configuration file. The file has to use ISO 8859-1/Latin-1 character encoding.
|
||||
# Characters that cannot be directly represented in this encoding can be written using Unicode escapes
|
||||
# as defined in https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.3, using the \u prefix.
|
||||
# For example, \u002c.
|
||||
#
|
||||
# * Entries are generally expected to be a single line of the form, one of the following:
|
||||
#
|
||||
# propertyName=propertyValue
|
||||
# propertyName:propertyValue
|
||||
#
|
||||
# * White space that appears between the property name and property value is ignored,
|
||||
# so the following are equivalent:
|
||||
#
|
||||
# name=Stephen
|
||||
# name = Stephen
|
||||
#
|
||||
# * White space at the beginning of the line is also ignored.
|
||||
#
|
||||
# * Lines that start with the comment characters ! or # are ignored. Blank lines are also ignored.
|
||||
#
|
||||
# * The property value is generally terminated by the end of the line. White space following the
|
||||
# property value is not ignored, and is treated as part of the property value.
|
||||
#
|
||||
# * A property value can span several lines if each line is terminated by a backslash (‘\’) character.
|
||||
# For example:
|
||||
#
|
||||
# targetCities=\
|
||||
# Detroit,\
|
||||
# Chicago,\
|
||||
# Los Angeles
|
||||
#
|
||||
# This is equivalent to targetCities=Detroit,Chicago,Los Angeles (white space at the beginning of lines is ignored).
|
||||
#
|
||||
# * The characters newline, carriage return, and tab can be inserted with characters \n, \r, and \t, respectively.
|
||||
#
|
||||
# * The backslash character must be escaped as a double backslash. For example:
|
||||
#
|
||||
# path=c:\\docs\\doc1
|
||||
#
|
||||
|
||||
# If you are running more than one instances of Graylog server you have to select one of these
|
||||
# instances as master. The master will perform some periodical tasks that non-masters won't perform.
|
||||
is_master = true
|
||||
|
||||
# The auto-generated node ID will be stored in this file and read after restarts. It is a good idea
|
||||
# to use an absolute file path here if you are starting Graylog server from init scripts or similar.
|
||||
node_id_file = /usr/share/graylog/data/config/node-id
|
||||
|
||||
# You MUST set a secret to secure/pepper the stored user passwords here. Use at least 64 characters.
|
||||
# Generate one by using for example: pwgen -N 1 -s 96
|
||||
password_secret = replacethiswithyourownsecret!
|
||||
|
||||
# The default root user is named 'admin'
|
||||
#root_username = admin
|
||||
|
||||
# You MUST specify a hash password for the root user (which you only need to initially set up the
|
||||
# system and in case you lose connectivity to your authentication backend)
|
||||
# This password cannot be changed using the API or via the web interface. If you need to change it,
|
||||
# modify it in this file.
|
||||
# Create one by using for example: echo -n yourpassword | shasum -a 256
|
||||
# and put the resulting hash value into the following line
|
||||
|
||||
# Default password: admin
|
||||
# CHANGE THIS!
|
||||
root_password_sha2 = 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
|
||||
|
||||
# The email address of the root user.
|
||||
# Default is empty
|
||||
#root_email = ""
|
||||
|
||||
# The time zone setting of the root user. See http://www.joda.org/joda-time/timezones.html for a list of valid time zones.
|
||||
# Default is UTC
|
||||
#root_timezone = UTC
|
||||
|
||||
# Set plugin directory here (relative or absolute)
|
||||
plugin_dir = /usr/share/graylog/plugin
|
||||
|
||||
###############
|
||||
# HTTP settings
|
||||
###############
|
||||
|
||||
#### HTTP bind address
|
||||
#
|
||||
# The network interface used by the Graylog HTTP interface.
|
||||
#
|
||||
# This network interface must be accessible by all Graylog nodes in the cluster and by all clients
|
||||
# using the Graylog web interface.
|
||||
#
|
||||
# If the port is omitted, Graylog will use port 9000 by default.
|
||||
#
|
||||
# Default: 127.0.0.1:9000
|
||||
#http_bind_address = 127.0.0.1:9000
|
||||
#http_bind_address = [2001:db8::1]:9000
|
||||
http_bind_address = 0.0.0.0:9000
|
||||
|
||||
#### HTTP publish URI
|
||||
#
|
||||
# The HTTP URI of this Graylog node which is used to communicate with the other Graylog nodes in the cluster and by all
|
||||
# clients using the Graylog web interface.
|
||||
#
|
||||
# The URI will be published in the cluster discovery APIs, so that other Graylog nodes will be able to find and connect to this Graylog node.
|
||||
#
|
||||
# This configuration setting has to be used if this Graylog node is available on another network interface than $http_bind_address,
|
||||
# for example if the machine has multiple network interfaces or is behind a NAT gateway.
|
||||
#
|
||||
# If $http_bind_address contains a wildcard IPv4 address (0.0.0.0), the first non-loopback IPv4 address of this machine will be used.
|
||||
# This configuration setting *must not* contain a wildcard address!
|
||||
#
|
||||
# Default: http://$http_bind_address/
|
||||
#http_publish_uri = http://192.168.1.1:9000/
|
||||
|
||||
#### External Graylog URI
|
||||
#
|
||||
# The public URI of Graylog which will be used by the Graylog web interface to communicate with the Graylog REST API.
|
||||
#
|
||||
# The external Graylog URI usually has to be specified, if Graylog is running behind a reverse proxy or load-balancer
|
||||
# and it will be used to generate URLs addressing entities in the Graylog REST API (see $http_bind_address).
|
||||
#
|
||||
# When using Graylog Collector, this URI will be used to receive heartbeat messages and must be accessible for all collectors.
|
||||
#
|
||||
# This setting can be overriden on a per-request basis with the "X-Graylog-Server-URL" HTTP request header.
|
||||
#
|
||||
# Default: $http_publish_uri
|
||||
#http_external_uri =
|
||||
|
||||
#### Enable CORS headers for HTTP interface
|
||||
#
|
||||
# This is necessary for JS-clients accessing the server directly.
|
||||
# If these are disabled, modern browsers will not be able to retrieve resources from the server.
|
||||
# This is enabled by default. Uncomment the next line to disable it.
|
||||
#http_enable_cors = false
|
||||
|
||||
#### Enable GZIP support for HTTP interface
|
||||
#
|
||||
# This compresses API responses and therefore helps to reduce
|
||||
# overall round trip times. This is enabled by default. Uncomment the next line to disable it.
|
||||
#http_enable_gzip = false
|
||||
|
||||
# The maximum size of the HTTP request headers in bytes.
|
||||
#http_max_header_size = 8192
|
||||
|
||||
# The size of the thread pool used exclusively for serving the HTTP interface.
|
||||
#http_thread_pool_size = 16
|
||||
|
||||
################
|
||||
# HTTPS settings
|
||||
################
|
||||
|
||||
#### Enable HTTPS support for the HTTP interface
|
||||
#
|
||||
# This secures the communication with the HTTP interface with TLS to prevent request forgery and eavesdropping.
|
||||
#
|
||||
# Default: false
|
||||
#http_enable_tls = true
|
||||
|
||||
# The X.509 certificate chain file in PEM format to use for securing the HTTP interface.
|
||||
#http_tls_cert_file = /path/to/graylog.crt
|
||||
|
||||
# The PKCS#8 private key file in PEM format to use for securing the HTTP interface.
|
||||
#http_tls_key_file = /path/to/graylog.key
|
||||
|
||||
# The password to unlock the private key used for securing the HTTP interface.
|
||||
#http_tls_key_password = secret
|
||||
|
||||
|
||||
# Comma separated list of trusted proxies that are allowed to set the client address with X-Forwarded-For
|
||||
# header. May be subnets, or hosts.
|
||||
#trusted_proxies = 127.0.0.1/32, 0:0:0:0:0:0:0:1/128
|
||||
|
||||
# List of Elasticsearch hosts Graylog should connect to.
|
||||
# Need to be specified as a comma-separated list of valid URIs for the http ports of your elasticsearch nodes.
|
||||
# If one or more of your elasticsearch hosts require authentication, include the credentials in each node URI that
|
||||
# requires authentication.
|
||||
#
|
||||
# Default: http://127.0.0.1:9200
|
||||
elasticsearch_hosts = http://elasticsearch:9200
|
||||
|
||||
# Maximum amount of time to wait for successfull connection to Elasticsearch HTTP port.
|
||||
#
|
||||
# Default: 10 Seconds
|
||||
#elasticsearch_connect_timeout = 10s
|
||||
|
||||
# Maximum amount of time to wait for reading back a response from an Elasticsearch server.
|
||||
#
|
||||
# Default: 60 seconds
|
||||
#elasticsearch_socket_timeout = 60s
|
||||
|
||||
# Maximum idle time for an Elasticsearch connection. If this is exceeded, this connection will
|
||||
# be tore down.
|
||||
#
|
||||
# Default: inf
|
||||
#elasticsearch_idle_timeout = -1s
|
||||
|
||||
# Maximum number of total connections to Elasticsearch.
|
||||
#
|
||||
# Default: 20
|
||||
#elasticsearch_max_total_connections = 20
|
||||
|
||||
# Maximum number of total connections per Elasticsearch route (normally this means per
|
||||
# elasticsearch server).
|
||||
#
|
||||
# Default: 2
|
||||
#elasticsearch_max_total_connections_per_route = 2
|
||||
|
||||
# Maximum number of times Graylog will retry failed requests to Elasticsearch.
|
||||
#
|
||||
# Default: 2
|
||||
#elasticsearch_max_retries = 2
|
||||
|
||||
# Enable automatic Elasticsearch node discovery through Nodes Info,
|
||||
# see https://www.elastic.co/guide/en/elasticsearch/reference/5.4/cluster-nodes-info.html
|
||||
#
|
||||
# WARNING: Automatic node discovery does not work if Elasticsearch requires authentication, e. g. with Shield.
|
||||
#
|
||||
# Default: false
|
||||
#elasticsearch_discovery_enabled = true
|
||||
|
||||
# Filter for including/excluding Elasticsearch nodes in discovery according to their custom attributes,
|
||||
# see https://www.elastic.co/guide/en/elasticsearch/reference/5.4/cluster.html#cluster-nodes
|
||||
#
|
||||
# Default: empty
|
||||
#elasticsearch_discovery_filter = rack:42
|
||||
|
||||
# Frequency of the Elasticsearch node discovery.
|
||||
#
|
||||
# Default: 30s
|
||||
# elasticsearch_discovery_frequency = 30s
|
||||
|
||||
# Enable payload compression for Elasticsearch requests.
|
||||
#
|
||||
# Default: false
|
||||
#elasticsearch_compression_enabled = true
|
||||
|
||||
# Disable checking the version of Elasticsearch for being compatible with this Graylog release.
|
||||
# WARNING: Using Graylog with unsupported and untested versions of Elasticsearch may lead to data loss!
|
||||
#elasticsearch_disable_version_check = true
|
||||
|
||||
# Disable message retention on this node, i. e. disable Elasticsearch index rotation.
|
||||
#no_retention = false
|
||||
|
||||
# Do you want to allow searches with leading wildcards? This can be extremely resource hungry and should only
|
||||
# be enabled with care. See also: http://docs.graylog.org/en/2.1/pages/queries.html
|
||||
allow_leading_wildcard_searches = false
|
||||
|
||||
# Do you want to allow searches to be highlighted? Depending on the size of your messages this can be memory hungry and
|
||||
# should only be enabled after making sure your Elasticsearch cluster has enough memory.
|
||||
allow_highlighting = false
|
||||
|
||||
# Global request timeout for Elasticsearch requests (e. g. during search, index creation, or index time-range
|
||||
# calculations) based on a best-effort to restrict the runtime of Elasticsearch operations.
|
||||
# Default: 1m
|
||||
#elasticsearch_request_timeout = 1m
|
||||
|
||||
# Global timeout for index optimization (force merge) requests.
|
||||
# Default: 1h
|
||||
#elasticsearch_index_optimization_timeout = 1h
|
||||
|
||||
# Maximum number of concurrently running index optimization (force merge) jobs.
|
||||
# If you are using lots of different index sets, you might want to increase that number.
|
||||
# Default: 20
|
||||
#elasticsearch_index_optimization_jobs = 20
|
||||
|
||||
# Time interval for index range information cleanups. This setting defines how often stale index range information
|
||||
# is being purged from the database.
|
||||
# Default: 1h
|
||||
#index_ranges_cleanup_interval = 1h
|
||||
|
||||
# Batch size for the Elasticsearch output. This is the maximum (!) number of messages the Elasticsearch output
|
||||
# module will get at once and write to Elasticsearch in a batch call. If the configured batch size has not been
|
||||
# reached within output_flush_interval seconds, everything that is available will be flushed at once. Remember
|
||||
# that every outputbuffer processor manages its own batch and performs its own batch write calls.
|
||||
# ("outputbuffer_processors" variable)
|
||||
output_batch_size = 500
|
||||
|
||||
# Flush interval (in seconds) for the Elasticsearch output. This is the maximum amount of time between two
|
||||
# batches of messages written to Elasticsearch. It is only effective at all if your minimum number of messages
|
||||
# for this time period is less than output_batch_size * outputbuffer_processors.
|
||||
output_flush_interval = 1
|
||||
|
||||
# As stream outputs are loaded only on demand, an output which is failing to initialize will be tried over and
|
||||
# over again. To prevent this, the following configuration options define after how many faults an output will
|
||||
# not be tried again for an also configurable amount of seconds.
|
||||
output_fault_count_threshold = 5
|
||||
output_fault_penalty_seconds = 30
|
||||
|
||||
# The number of parallel running processors.
|
||||
# Raise this number if your buffers are filling up.
|
||||
processbuffer_processors = 5
|
||||
outputbuffer_processors = 3
|
||||
|
||||
# The following settings (outputbuffer_processor_*) configure the thread pools backing each output buffer processor.
|
||||
# See https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html for technical details
|
||||
|
||||
# When the number of threads is greater than the core (see outputbuffer_processor_threads_core_pool_size),
|
||||
# this is the maximum time in milliseconds that excess idle threads will wait for new tasks before terminating.
|
||||
# Default: 5000
|
||||
#outputbuffer_processor_keep_alive_time = 5000
|
||||
|
||||
# The number of threads to keep in the pool, even if they are idle, unless allowCoreThreadTimeOut is set
|
||||
# Default: 3
|
||||
#outputbuffer_processor_threads_core_pool_size = 3
|
||||
|
||||
# The maximum number of threads to allow in the pool
|
||||
# Default: 30
|
||||
#outputbuffer_processor_threads_max_pool_size = 30
|
||||
|
||||
# UDP receive buffer size for all message inputs (e. g. SyslogUDPInput).
|
||||
#udp_recvbuffer_sizes = 1048576
|
||||
|
||||
# Wait strategy describing how buffer processors wait on a cursor sequence. (default: sleeping)
|
||||
# Possible types:
|
||||
# - yielding
|
||||
# Compromise between performance and CPU usage.
|
||||
# - sleeping
|
||||
# Compromise between performance and CPU usage. Latency spikes can occur after quiet periods.
|
||||
# - blocking
|
||||
# High throughput, low latency, higher CPU usage.
|
||||
# - busy_spinning
|
||||
# Avoids syscalls which could introduce latency jitter. Best when threads can be bound to specific CPU cores.
|
||||
processor_wait_strategy = blocking
|
||||
|
||||
# Size of internal ring buffers. Raise this if raising outputbuffer_processors does not help anymore.
|
||||
# For optimum performance your LogMessage objects in the ring buffer should fit in your CPU L3 cache.
|
||||
# Must be a power of 2. (512, 1024, 2048, ...)
|
||||
ring_size = 65536
|
||||
|
||||
inputbuffer_ring_size = 65536
|
||||
inputbuffer_processors = 2
|
||||
inputbuffer_wait_strategy = blocking
|
||||
|
||||
# Enable the disk based message journal.
|
||||
message_journal_enabled = true
|
||||
|
||||
# The directory which will be used to store the message journal. The directory must me exclusively used by Graylog and
|
||||
# must not contain any other files than the ones created by Graylog itself.
|
||||
#
|
||||
# ATTENTION:
|
||||
# If you create a seperate partition for the journal files and use a file system creating directories like 'lost+found'
|
||||
# in the root directory, you need to create a sub directory for your journal.
|
||||
# Otherwise Graylog will log an error message that the journal is corrupt and Graylog will not start.
|
||||
message_journal_dir = /usr/share/graylog/data/journal
|
||||
|
||||
# Journal hold messages before they could be written to Elasticsearch.
|
||||
# For a maximum of 12 hours or 5 GB whichever happens first.
|
||||
# During normal operation the journal will be smaller.
|
||||
#message_journal_max_age = 12h
|
||||
#message_journal_max_size = 5gb
|
||||
|
||||
#message_journal_flush_age = 1m
|
||||
#message_journal_flush_interval = 1000000
|
||||
#message_journal_segment_age = 1h
|
||||
#message_journal_segment_size = 100mb
|
||||
|
||||
# Number of threads used exclusively for dispatching internal events. Default is 2.
|
||||
#async_eventbus_processors = 2
|
||||
|
||||
# How many seconds to wait between marking node as DEAD for possible load balancers and starting the actual
|
||||
# shutdown process. Set to 0 if you have no status checking load balancers in front.
|
||||
lb_recognition_period_seconds = 3
|
||||
|
||||
# Journal usage percentage that triggers requesting throttling for this server node from load balancers. The feature is
|
||||
# disabled if not set.
|
||||
#lb_throttle_threshold_percentage = 95
|
||||
|
||||
# Every message is matched against the configured streams and it can happen that a stream contains rules which
|
||||
# take an unusual amount of time to run, for example if its using regular expressions that perform excessive backtracking.
|
||||
# This will impact the processing of the entire server. To keep such misbehaving stream rules from impacting other
|
||||
# streams, Graylog limits the execution time for each stream.
|
||||
# The default values are noted below, the timeout is in milliseconds.
|
||||
# If the stream matching for one stream took longer than the timeout value, and this happened more than "max_faults" times
|
||||
# that stream is disabled and a notification is shown in the web interface.
|
||||
#stream_processing_timeout = 2000
|
||||
#stream_processing_max_faults = 3
|
||||
|
||||
# Length of the interval in seconds in which the alert conditions for all streams should be checked
|
||||
# and alarms are being sent.
|
||||
#alert_check_interval = 60
|
||||
|
||||
# Since 0.21 the Graylog server supports pluggable output modules. This means a single message can be written to multiple
|
||||
# outputs. The next setting defines the timeout for a single output module, including the default output module where all
|
||||
# messages end up.
|
||||
#
|
||||
# Time in milliseconds to wait for all message outputs to finish writing a single message.
|
||||
#output_module_timeout = 10000
|
||||
|
||||
# Time in milliseconds after which a detected stale master node is being rechecked on startup.
|
||||
#stale_master_timeout = 2000
|
||||
|
||||
# Time in milliseconds which Graylog is waiting for all threads to stop on shutdown.
|
||||
#shutdown_timeout = 30000
|
||||
|
||||
# MongoDB connection string
|
||||
# See https://docs.mongodb.com/manual/reference/connection-string/ for details
|
||||
mongodb_uri = mongodb://mongo/graylog
|
||||
|
||||
# Authenticate against the MongoDB server
|
||||
#mongodb_uri = mongodb://grayloguser:secret@mongo:27017/graylog
|
||||
|
||||
# Use a replica set instead of a single host
|
||||
#mongodb_uri = mongodb://grayloguser:secret@mongo:27017,mongo:27018,mongo:27019/graylog
|
||||
|
||||
# Increase this value according to the maximum connections your MongoDB server can handle from a single client
|
||||
# if you encounter MongoDB connection problems.
|
||||
mongodb_max_connections = 100
|
||||
|
||||
# Number of threads allowed to be blocked by MongoDB connections multiplier. Default: 5
|
||||
# If mongodb_max_connections is 100, and mongodb_threads_allowed_to_block_multiplier is 5,
|
||||
# then 500 threads can block. More than that and an exception will be thrown.
|
||||
# http://api.mongodb.com/java/current/com/mongodb/MongoOptions.html#threadsAllowedToBlockForConnectionMultiplier
|
||||
mongodb_threads_allowed_to_block_multiplier = 5
|
||||
|
||||
# Drools Rule File (Use to rewrite incoming log messages)
|
||||
# See: http://docs.graylog.org/en/2.1/pages/drools.html
|
||||
#rules_file = /etc/graylog/server/rules.drl
|
||||
|
||||
# Email transport
|
||||
#transport_email_enabled = false
|
||||
#transport_email_hostname = mail.example.com
|
||||
#transport_email_port = 587
|
||||
#transport_email_use_auth = true
|
||||
#transport_email_use_tls = true
|
||||
#transport_email_use_ssl = true
|
||||
#transport_email_auth_username = you@example.com
|
||||
#transport_email_auth_password = secret
|
||||
#transport_email_subject_prefix = [graylog]
|
||||
#transport_email_from_email = graylog@example.com
|
||||
|
||||
# Specify and uncomment this if you want to include links to the stream in your stream alert mails.
|
||||
# This should define the fully qualified base url to your web interface exactly the same way as it is accessed by your users.
|
||||
#transport_email_web_interface_url = https://graylog.example.com
|
||||
|
||||
# The default connect timeout for outgoing HTTP connections.
|
||||
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
|
||||
# Default: 5s
|
||||
#http_connect_timeout = 5s
|
||||
|
||||
# The default read timeout for outgoing HTTP connections.
|
||||
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
|
||||
# Default: 10s
|
||||
#http_read_timeout = 10s
|
||||
|
||||
# The default write timeout for outgoing HTTP connections.
|
||||
# Values must be a positive duration (and between 1 and 2147483647 when converted to milliseconds).
|
||||
# Default: 10s
|
||||
#http_write_timeout = 10s
|
||||
|
||||
# HTTP proxy for outgoing HTTP connections
|
||||
#http_proxy_uri =
|
||||
|
||||
# The threshold of the garbage collection runs. If GC runs take longer than this threshold, a system notification
|
||||
# will be generated to warn the administrator about possible problems with the system. Default is 1 second.
|
||||
#gc_warning_threshold = 1s
|
||||
|
||||
# Connection timeout for a configured LDAP server (e. g. ActiveDirectory) in milliseconds.
|
||||
#ldap_connection_timeout = 2000
|
||||
|
||||
# Disable the use of SIGAR for collecting system stats
|
||||
#disable_sigar = false
|
||||
|
||||
# The default cache time for dashboard widgets. (Default: 10 seconds, minimum: 1 second)
|
||||
#dashboard_widget_default_cache_time = 10s
|
||||
|
||||
# Automatically load content packs in "content_packs_dir" on the first start of Graylog.
|
||||
content_packs_loader_enabled = true
|
||||
|
||||
# The directory which contains content packs which should be loaded on the first start of Graylog.
|
||||
content_packs_dir = /usr/share/graylog/data/contentpacks
|
||||
|
||||
# A comma-separated list of content packs (files in "content_packs_dir") which should be applied on
|
||||
# the first start of Graylog.
|
||||
# Default: empty
|
||||
content_packs_auto_load = grok-patterns.json
|
||||
|
||||
# For some cluster-related REST requests, the node must query all other nodes in the cluster. This is the maximum number
|
||||
# of threads available for this. Increase it, if '/cluster/*' requests take long to complete.
|
||||
# Should be http_thread_pool_size * average_cluster_size if you have a high number of concurrent users.
|
||||
proxied_requests_thread_pool_size = 32
|
35
graylog/config/log4j2.xml
Normal file
35
graylog/config/log4j2.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration packages="org.graylog2.log4j" shutdownHook="disable">
|
||||
<Appenders>
|
||||
<Console name="STDOUT" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d %-5p: %c - %m%n"/>
|
||||
</Console>
|
||||
|
||||
<!-- Internal Graylog log appender. Please do not disable. This makes internal log messages available via REST calls. -->
|
||||
<Memory name="graylog-internal-logs" bufferSize="500"/>
|
||||
</Appenders>
|
||||
<Loggers>
|
||||
<!-- Application Loggers -->
|
||||
<Logger name="org.graylog2" level="info"/>
|
||||
<Logger name="com.github.joschi.jadconfig" level="warn"/>
|
||||
<!-- this emits a harmless warning for ActiveDirectory every time which we can't work around :( -->
|
||||
<Logger name="org.apache.directory.api.ldap.model.message.BindRequestImpl" level="error"/>
|
||||
<!-- Prevent DEBUG message about Lucene Expressions not found. -->
|
||||
<Logger name="org.elasticsearch.script" level="warn"/>
|
||||
<!-- Disable messages from the version check -->
|
||||
<Logger name="org.graylog2.periodical.VersionCheckThread" level="off"/>
|
||||
<!-- Suppress crazy byte array dump of Drools -->
|
||||
<Logger name="org.drools.compiler.kie.builder.impl.KieRepositoryImpl" level="warn"/>
|
||||
<!-- Silence chatty natty -->
|
||||
<Logger name="com.joestelmach.natty.Parser" level="warn"/>
|
||||
<!-- Silence Kafka log chatter -->
|
||||
<Logger name="kafka.log.Log" level="warn"/>
|
||||
<Logger name="kafka.log.OffsetIndex" level="warn"/>
|
||||
<!-- Silence useless session validation messages -->
|
||||
<Logger name="org.apache.shiro.session.mgt.AbstractValidatingSessionManager" level="warn"/>
|
||||
<Root level="warn">
|
||||
<AppenderRef ref="STDOUT"/>
|
||||
<AppenderRef ref="graylog-internal-logs"/>
|
||||
</Root>
|
||||
</Loggers>
|
||||
</Configuration>
|
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"]
|
9
ide-theia/Dockerfile
Normal file
9
ide-theia/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM theiaide/theia
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||
|
||||
USER root
|
||||
|
||||
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf
|
||||
|
||||
USER theia
|
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 zeromq-dev
|
||||
|
||||
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 zeromq-dev
|
||||
|
||||
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
|
||||
}
|
@ -108,3 +108,7 @@ COPY install-plugins.sh /usr/local/bin/install-plugins.sh
|
||||
#RUN chmod 644 /var/jenkins_home/.ssh/id_rsa.pub
|
||||
## ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
||||
## ssh-keyscan -H bitbucket.org >> ~/.ssh/known_hosts
|
||||
|
||||
# Fix docker permission denied error
|
||||
USER root
|
||||
RUN usermod -aG docker jenkins
|
||||
|
27
jupyterhub/Dockerfile
Normal file
27
jupyterhub/Dockerfile
Normal file
@ -0,0 +1,27 @@
|
||||
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}
|
||||
ENV JUPYTERHUB_ENABLE_NVIDIA ${JUPYTERHUB_ENABLE_NVIDIA}
|
||||
|
||||
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"]
|
||||
|
||||
|
128
jupyterhub/jupyterhub_config.py
Normal file
128
jupyterhub/jupyterhub_config.py
Normal file
@ -0,0 +1,128 @@
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
# Configuration file for JupyterHub
|
||||
import os
|
||||
|
||||
c = get_config()
|
||||
|
||||
# create system users that don't exist yet
|
||||
c.LocalAuthenticator.create_system_users = True
|
||||
|
||||
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
|
||||
|
||||
enable_nvidia = os.environ.get('JUPYTERHUB_ENABLE_NVIDIA','false')
|
||||
# Pass the network name as argument to spawned containers
|
||||
c.DockerSpawner.extra_host_config = { 'network_mode': network_name }
|
||||
if 'true' == enable_nvidia:
|
||||
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
|
||||
pass
|
||||
# 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
|
@ -1,3 +1,3 @@
|
||||
FROM docker.elastic.co/kibana/kibana:6.2.3
|
||||
FROM docker.elastic.co/kibana/kibana:7.1.1
|
||||
|
||||
EXPOSE 5601
|
||||
|
@ -19,4 +19,4 @@ RUN npm install
|
||||
COPY laravel-echo-server.json /usr/src/app/laravel-echo-server.json
|
||||
|
||||
EXPOSE 3000
|
||||
CMD [ "npm", "start" ]
|
||||
CMD [ "npm", "start", "--force" ]
|
||||
|
@ -4,9 +4,9 @@
|
||||
"version": "0.0.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"laravel-echo-server": "^1.2.8"
|
||||
"laravel-echo-server": "^1.5.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "laravel-echo-server start"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
159
laravel-horizon/Dockerfile
Normal file
159
laravel-horizon/Dockerfile
Normal file
@ -0,0 +1,159 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
FROM php:${PHP_VERSION}-alpine
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
|
||||
|
||||
ARG CHANGE_SOURCE=false
|
||||
RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
||||
# Change application source from dl-cdn.alpinelinux.org to aliyun source
|
||||
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
|
||||
;fi
|
||||
|
||||
RUN apk --update add wget \
|
||||
curl \
|
||||
git \
|
||||
build-base \
|
||||
libmemcached-dev \
|
||||
libmcrypt-dev \
|
||||
libxml2-dev \
|
||||
zlib-dev \
|
||||
autoconf \
|
||||
cyrus-sasl-dev \
|
||||
libgsasl-dev \
|
||||
supervisor \
|
||||
procps
|
||||
|
||||
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
|
||||
|
||||
#Install BCMath package:
|
||||
ARG INSTALL_BCMATH=false
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
#Install Sockets package:
|
||||
ARG INSTALL_SOCKETS=false
|
||||
RUN if [ ${INSTALL_SOCKETS} = true ]; then \
|
||||
docker-php-ext-install sockets \
|
||||
;fi
|
||||
|
||||
# Install PostgreSQL drivers:
|
||||
ARG INSTALL_PGSQL=false
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
apk --update add postgresql-dev \
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
;fi
|
||||
|
||||
# Install Cassandra drivers:
|
||||
ARG INSTALL_CASSANDRA=false
|
||||
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||
apk --update add cassandra-cpp-driver \
|
||||
;fi
|
||||
|
||||
# Install PhpRedis package:
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
printf "\n" | pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
WORKDIR /usr/src
|
||||
RUN if [ ${INSTALL_CASSANDRA} = true ]; then \
|
||||
git clone https://github.com/datastax/php-driver.git \
|
||||
&& cd php-driver/ext \
|
||||
&& phpize \
|
||||
&& mkdir -p /usr/src/php-driver/build \
|
||||
&& cd /usr/src/php-driver/build \
|
||||
&& ../ext/configure > /dev/null \
|
||||
&& make clean >/dev/null \
|
||||
&& make >/dev/null 2>&1 \
|
||||
&& make install \
|
||||
&& docker-php-ext-enable cassandra \
|
||||
;fi
|
||||
|
||||
# Install MongoDB drivers:
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
pecl install mongodb \
|
||||
&& docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
|
||||
###########################################################################
|
||||
# PHP Memcached:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
|
||||
else \
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/v3.1.3.tar.gz"; \
|
||||
fi \
|
||||
&& mkdir -p memcached \
|
||||
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd memcached \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm -r memcached \
|
||||
&& rm /tmp/memcached.tar.gz \
|
||||
&& docker-php-ext-enable memcached \
|
||||
;fi
|
||||
|
||||
RUN rm /var/cache/apk/* \
|
||||
&& mkdir -p /var/www
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Supervisord Configuration
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Modify the ./supervisor.conf file to match your App's requirements.
|
||||
# Make sure you rebuild your container with every change.
|
||||
#
|
||||
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# If you need to modify this image, feel free to do it right here.
|
||||
#
|
||||
# -- Your awesome modifications go here -- #
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Check PHP version
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
WORKDIR /etc/supervisor/conf.d/
|
10
laravel-horizon/supervisord.conf
Normal file
10
laravel-horizon/supervisord.conf
Normal file
@ -0,0 +1,10 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
[supervisorctl]
|
||||
[inet_http_server]
|
||||
port = 127.0.0.1:9001
|
||||
[rpcinterface:supervisor]
|
||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||
|
||||
[include]
|
||||
files = supervisord.d/*.conf
|
1
laravel-horizon/supervisord.d/.gitignore
vendored
Normal file
1
laravel-horizon/supervisord.d/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.conf
|
@ -0,0 +1,6 @@
|
||||
[program:laravel-horizon]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /var/www/artisan horizon
|
||||
autostart=true
|
||||
autorestart=true
|
||||
redirect_stderr=true
|
10
logstash/Dockerfile
Normal file
10
logstash/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
||||
FROM docker.elastic.co/logstash/logstash:6.4.2
|
||||
|
||||
USER root
|
||||
RUN rm -f /usr/share/logstash/pipeline/logstash.conf
|
||||
RUN curl -L -o /usr/share/logstash/lib/mysql-connector-java-5.1.47.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
|
||||
ADD ./pipeline/ /usr/share/logstash/pipeline/
|
||||
ADD ./config/ /usr/share/logstash/config/
|
||||
|
||||
RUN logstash-plugin install logstash-input-jdbc
|
||||
|
5
logstash/config/logstash.yml
Normal file
5
logstash/config/logstash.yml
Normal file
@ -0,0 +1,5 @@
|
||||
http.host: "0.0.0.0"
|
||||
|
||||
xpack.monitoring.enabled: false
|
||||
config.reload.automatic: true
|
||||
path.config: "/usr/share/logstash/pipeline"
|
0
logstash/pipeline/.gitkeep
Normal file
0
logstash/pipeline/.gitkeep
Normal file
5
manticore/Dockerfile
Normal file
5
manticore/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM manticoresearch/manticore
|
||||
|
||||
EXPOSE 9306
|
||||
EXPOSE 9308
|
||||
EXPOSE 9312
|
25
manticore/config/sphinx.conf
Normal file
25
manticore/config/sphinx.conf
Normal file
@ -0,0 +1,25 @@
|
||||
index testrt {
|
||||
type = rt
|
||||
rt_mem_limit = 128M
|
||||
path = /var/lib/manticore/data/testrt
|
||||
rt_field = title
|
||||
rt_field = content
|
||||
rt_attr_uint = gid
|
||||
}
|
||||
|
||||
searchd {
|
||||
listen = 9312
|
||||
listen = 9308:http
|
||||
listen = 9306:mysql41
|
||||
log = /var/lib/manticore/log/searchd.log
|
||||
# you can also send query_log to /dev/stdout to be shown in docker logs
|
||||
query_log = /var/lib/manticore/log/query.log
|
||||
read_timeout = 5
|
||||
max_children = 30
|
||||
pid_file = /var/run/searchd.pid
|
||||
seamless_rotate = 1
|
||||
preopen_indexes = 1
|
||||
unlink_old = 1
|
||||
binlog_path = /var/lib/manticore/data
|
||||
}
|
||||
|
@ -1,9 +1,19 @@
|
||||
FROM mariadb:latest
|
||||
ARG MARIADB_VERSION=latest
|
||||
FROM mariadb:${MARIADB_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
#####################################
|
||||
# Set Timezone
|
||||
#####################################
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
|
||||
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||
|
||||
RUN chmod -R 644 /etc/mysql/conf.d/my.cnf
|
||||
|
||||
CMD ["mysqld"]
|
||||
|
||||
EXPOSE 3306
|
||||
|
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>"
|
5
mosquitto/Dockerfile
Normal file
5
mosquitto/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
||||
FROM eclipse-mosquitto:latest
|
||||
|
||||
LABEL maintainer="Luis Coutinho <luis@luiscoutinho.pt>"
|
||||
|
||||
COPY mosquitto.conf /mosquitto/config/
|
838
mosquitto/mosquitto.conf
Normal file
838
mosquitto/mosquitto.conf
Normal file
@ -0,0 +1,838 @@
|
||||
# Config file for mosquitto
|
||||
#
|
||||
# See mosquitto.conf(5) for more information.
|
||||
#
|
||||
# Default values are shown, uncomment to change.
|
||||
#
|
||||
# Use the # character to indicate a comment, but only if it is the
|
||||
# very first character on the line.
|
||||
|
||||
# =================================================================
|
||||
# General configuration
|
||||
# =================================================================
|
||||
|
||||
# Time in seconds to wait before resending an outgoing QoS=1 or
|
||||
# QoS=2 message.
|
||||
#retry_interval 20
|
||||
|
||||
# Time in seconds between updates of the $SYS tree.
|
||||
# Set to 0 to disable the publishing of the $SYS tree.
|
||||
#sys_interval 10
|
||||
|
||||
# Time in seconds between cleaning the internal message store of
|
||||
# unreferenced messages. Lower values will result in lower memory
|
||||
# usage but more processor time, higher values will have the
|
||||
# opposite effect.
|
||||
# Setting a value of 0 means the unreferenced messages will be
|
||||
# disposed of as quickly as possible.
|
||||
#store_clean_interval 10
|
||||
|
||||
# Write process id to a file. Default is a blank string which means
|
||||
# a pid file shouldn't be written.
|
||||
# This should be set to /var/run/mosquitto.pid if mosquitto is
|
||||
# being run automatically on boot with an init script and
|
||||
# start-stop-daemon or similar.
|
||||
#pid_file
|
||||
|
||||
# When run as root, drop privileges to this user and its primary
|
||||
# group.
|
||||
# Leave blank to stay as root, but this is not recommended.
|
||||
# If run as a non-root user, this setting has no effect.
|
||||
# Note that on Windows this has no effect and so mosquitto should
|
||||
# be started by the user you wish it to run as.
|
||||
#user mosquitto
|
||||
|
||||
# The maximum number of QoS 1 and 2 messages currently inflight per
|
||||
# client.
|
||||
# This includes messages that are partway through handshakes and
|
||||
# those that are being retried. Defaults to 20. Set to 0 for no
|
||||
# maximum. Setting to 1 will guarantee in-order delivery of QoS 1
|
||||
# and 2 messages.
|
||||
#max_inflight_messages 20
|
||||
|
||||
# The maximum number of QoS 1 and 2 messages to hold in a queue
|
||||
# above those that are currently in-flight. Defaults to 100. Set
|
||||
# to 0 for no maximum (not recommended).
|
||||
# See also queue_qos0_messages.
|
||||
#max_queued_messages 100
|
||||
|
||||
# Set to true to queue messages with QoS 0 when a persistent client is
|
||||
# disconnected. These messages are included in the limit imposed by
|
||||
# max_queued_messages.
|
||||
# Defaults to false.
|
||||
# This is a non-standard option for the MQTT v3.1 spec but is allowed in
|
||||
# v3.1.1.
|
||||
#queue_qos0_messages false
|
||||
|
||||
# This option sets the maximum publish payload size that the broker will allow.
|
||||
# Received messages that exceed this size will not be accepted by the broker.
|
||||
# The default value is 0, which means that all valid MQTT messages are
|
||||
# accepted. MQTT imposes a maximum payload size of 268435455 bytes.
|
||||
#message_size_limit 0
|
||||
|
||||
# This option controls whether a client is allowed to connect with a zero
|
||||
# length client id or not. This option only affects clients using MQTT v3.1.1
|
||||
# and later. If set to false, clients connecting with a zero length client id
|
||||
# are disconnected. If set to true, clients will be allocated a client id by
|
||||
# the broker. This means it is only useful for clients with clean session set
|
||||
# to true.
|
||||
#allow_zero_length_clientid true
|
||||
|
||||
# If allow_zero_length_clientid is true, this option allows you to set a prefix
|
||||
# to automatically generated client ids to aid visibility in logs.
|
||||
#auto_id_prefix
|
||||
|
||||
# This option allows persistent clients (those with clean session set to false)
|
||||
# to be removed if they do not reconnect within a certain time frame.
|
||||
#
|
||||
# This is a non-standard option in MQTT V3.1 but allowed in MQTT v3.1.1.
|
||||
#
|
||||
# Badly designed clients may set clean session to false whilst using a randomly
|
||||
# generated client id. This leads to persistent clients that will never
|
||||
# reconnect. This option allows these clients to be removed.
|
||||
#
|
||||
# The expiration period should be an integer followed by one of h d w m y for
|
||||
# hour, day, week, month and year respectively. For example
|
||||
#
|
||||
# persistent_client_expiration 2m
|
||||
# persistent_client_expiration 14d
|
||||
# persistent_client_expiration 1y
|
||||
#
|
||||
# The default if not set is to never expire persistent clients.
|
||||
#persistent_client_expiration
|
||||
|
||||
# If a client is subscribed to multiple subscriptions that overlap, e.g. foo/#
|
||||
# and foo/+/baz , then MQTT expects that when the broker receives a message on
|
||||
# a topic that matches both subscriptions, such as foo/bar/baz, then the client
|
||||
# should only receive the message once.
|
||||
# Mosquitto keeps track of which clients a message has been sent to in order to
|
||||
# meet this requirement. The allow_duplicate_messages option allows this
|
||||
# behaviour to be disabled, which may be useful if you have a large number of
|
||||
# clients subscribed to the same set of topics and are very concerned about
|
||||
# minimising memory usage.
|
||||
# It can be safely set to true if you know in advance that your clients will
|
||||
# never have overlapping subscriptions, otherwise your clients must be able to
|
||||
# correctly deal with duplicate messages even when then have QoS=2.
|
||||
#allow_duplicate_messages false
|
||||
|
||||
# The MQTT specification requires that the QoS of a message delivered to a
|
||||
# subscriber is never upgraded to match the QoS of the subscription. Enabling
|
||||
# this option changes this behaviour. If upgrade_outgoing_qos is set true,
|
||||
# messages sent to a subscriber will always match the QoS of its subscription.
|
||||
# This is a non-standard option explicitly disallowed by the spec.
|
||||
#upgrade_outgoing_qos false
|
||||
|
||||
# =================================================================
|
||||
# Default listener
|
||||
# =================================================================
|
||||
|
||||
# IP address/hostname to bind the default listener to. If not
|
||||
# given, the default listener will not be bound to a specific
|
||||
# address and so will be accessible to all network interfaces.
|
||||
# bind_address ip-address/host name
|
||||
#bind_address
|
||||
|
||||
# Port to use for the default listener.
|
||||
port 9001
|
||||
|
||||
# The maximum number of client connections to allow. This is
|
||||
# a per listener setting.
|
||||
# Default is -1, which means unlimited connections.
|
||||
# Note that other process limits mean that unlimited connections
|
||||
# are not really possible. Typically the default maximum number of
|
||||
# connections possible is around 1024.
|
||||
#max_connections -1
|
||||
|
||||
# Choose the protocol to use when listening.
|
||||
# This can be either mqtt or websockets.
|
||||
# Websockets support is currently disabled by default at compile time.
|
||||
# Certificate based TLS may be used with websockets, except that
|
||||
# only the cafile, certfile, keyfile and ciphers options are supported.
|
||||
protocol websockets
|
||||
|
||||
# When a listener is using the websockets protocol, it is possible to serve
|
||||
# http data as well. Set http_dir to a directory which contains the files you
|
||||
# wish to serve. If this option is not specified, then no normal http
|
||||
# connections will be possible.
|
||||
#http_dir
|
||||
|
||||
# Set use_username_as_clientid to true to replace the clientid that a client
|
||||
# connected with with its username. This allows authentication to be tied to
|
||||
# the clientid, which means that it is possible to prevent one client
|
||||
# disconnecting another by using the same clientid.
|
||||
# If a client connects with no username it will be disconnected as not
|
||||
# authorised when this option is set to true.
|
||||
# Do not use in conjunction with clientid_prefixes.
|
||||
# See also use_identity_as_username.
|
||||
#use_username_as_clientid
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Certificate based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# The following options can be used to enable SSL/TLS support for
|
||||
# this listener. Note that the recommended port for MQTT over TLS
|
||||
# is 8883, but this must be set manually.
|
||||
#
|
||||
# See also the mosquitto-tls man page.
|
||||
|
||||
# At least one of cafile or capath must be defined. They both
|
||||
# define methods of accessing the PEM encoded Certificate
|
||||
# Authority certificates that have signed your server certificate
|
||||
# and that you wish to trust.
|
||||
# cafile defines the path to a file containing the CA certificates.
|
||||
# capath defines a directory that will be searched for files
|
||||
# containing the CA certificates. For capath to work correctly, the
|
||||
# certificate files must have ".crt" as the file ending and you must run
|
||||
# "c_rehash <path to capath>" each time you add/remove a certificate.
|
||||
#cafile
|
||||
#capath
|
||||
|
||||
# Path to the PEM encoded server certificate.
|
||||
#certfile
|
||||
|
||||
# Path to the PEM encoded keyfile.
|
||||
#keyfile
|
||||
|
||||
# This option defines the version of the TLS protocol to use for this listener.
|
||||
# The default value allows v1.2, v1.1 and v1.0, if they are all supported by
|
||||
# the version of openssl that the broker was compiled against. For openssl >=
|
||||
# 1.0.1 the valid values are tlsv1.2 tlsv1.1 and tlsv1. For openssl < 1.0.1 the
|
||||
# valid values are tlsv1.
|
||||
#tls_version
|
||||
|
||||
# By default a TLS enabled listener will operate in a similar fashion to a
|
||||
# https enabled web server, in that the server has a certificate signed by a CA
|
||||
# and the client will verify that it is a trusted certificate. The overall aim
|
||||
# is encryption of the network traffic. By setting require_certificate to true,
|
||||
# the client must provide a valid certificate in order for the network
|
||||
# connection to proceed. This allows access to the broker to be controlled
|
||||
# outside of the mechanisms provided by MQTT.
|
||||
#require_certificate false
|
||||
|
||||
# If require_certificate is true, you may set use_identity_as_username to true
|
||||
# to use the CN value from the client certificate as a username. If this is
|
||||
# true, the password_file option will not be used for this listener.
|
||||
#use_identity_as_username false
|
||||
|
||||
# If you have require_certificate set to true, you can create a certificate
|
||||
# revocation list file to revoke access to particular client certificates. If
|
||||
# you have done this, use crlfile to point to the PEM encoded revocation file.
|
||||
#crlfile
|
||||
|
||||
# If you wish to control which encryption ciphers are used, use the ciphers
|
||||
# option. The list of available ciphers can be optained using the "openssl
|
||||
# ciphers" command and should be provided in the same format as the output of
|
||||
# that command.
|
||||
# If unset defaults to DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
|
||||
#ciphers DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Pre-shared-key based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# The following options can be used to enable PSK based SSL/TLS support for
|
||||
# this listener. Note that the recommended port for MQTT over TLS is 8883, but
|
||||
# this must be set manually.
|
||||
#
|
||||
# See also the mosquitto-tls man page and the "Certificate based SSL/TLS
|
||||
# support" section. Only one of certificate or PSK encryption support can be
|
||||
# enabled for any listener.
|
||||
|
||||
# The psk_hint option enables pre-shared-key support for this listener and also
|
||||
# acts as an identifier for this listener. The hint is sent to clients and may
|
||||
# be used locally to aid authentication. The hint is a free form string that
|
||||
# doesn't have much meaning in itself, so feel free to be creative.
|
||||
# If this option is provided, see psk_file to define the pre-shared keys to be
|
||||
# used or create a security plugin to handle them.
|
||||
#psk_hint
|
||||
|
||||
# Set use_identity_as_username to have the psk identity sent by the client used
|
||||
# as its username. Authentication will be carried out using the PSK rather than
|
||||
# the MQTT username/password and so password_file will not be used for this
|
||||
# listener.
|
||||
#use_identity_as_username false
|
||||
|
||||
# When using PSK, the encryption ciphers used will be chosen from the list of
|
||||
# available PSK ciphers. If you want to control which ciphers are available,
|
||||
# use the "ciphers" option. The list of available ciphers can be optained
|
||||
# using the "openssl ciphers" command and should be provided in the same format
|
||||
# as the output of that command.
|
||||
#ciphers
|
||||
|
||||
# =================================================================
|
||||
# Extra listeners
|
||||
# =================================================================
|
||||
|
||||
# Listen on a port/ip address combination. By using this variable
|
||||
# multiple times, mosquitto can listen on more than one port. If
|
||||
# this variable is used and neither bind_address nor port given,
|
||||
# then the default listener will not be started.
|
||||
# The port number to listen on must be given. Optionally, an ip
|
||||
# address or host name may be supplied as a second argument. In
|
||||
# this case, mosquitto will attempt to bind the listener to that
|
||||
# address and so restrict access to the associated network and
|
||||
# interface. By default, mosquitto will listen on all interfaces.
|
||||
# Note that for a websockets listener it is not possible to bind to a host
|
||||
# name.
|
||||
# listener port-number [ip address/host name]
|
||||
#listener
|
||||
|
||||
# The maximum number of client connections to allow. This is
|
||||
# a per listener setting.
|
||||
# Default is -1, which means unlimited connections.
|
||||
# Note that other process limits mean that unlimited connections
|
||||
# are not really possible. Typically the default maximum number of
|
||||
# connections possible is around 1024.
|
||||
#max_connections -1
|
||||
|
||||
# The listener can be restricted to operating within a topic hierarchy using
|
||||
# the mount_point option. This is achieved be prefixing the mount_point string
|
||||
# to all topics for any clients connected to this listener. This prefixing only
|
||||
# happens internally to the broker; the client will not see the prefix.
|
||||
#mount_point
|
||||
|
||||
# Choose the protocol to use when listening.
|
||||
# This can be either mqtt or websockets.
|
||||
# Certificate based TLS may be used with websockets, except that only the
|
||||
# cafile, certfile, keyfile and ciphers options are supported.
|
||||
#protocol mqtt
|
||||
|
||||
# When a listener is using the websockets protocol, it is possible to serve
|
||||
# http data as well. Set http_dir to a directory which contains the files you
|
||||
# wish to serve. If this option is not specified, then no normal http
|
||||
# connections will be possible.
|
||||
#http_dir
|
||||
|
||||
# Set use_username_as_clientid to true to replace the clientid that a client
|
||||
# connected with with its username. This allows authentication to be tied to
|
||||
# the clientid, which means that it is possible to prevent one client
|
||||
# disconnecting another by using the same clientid.
|
||||
# If a client connects with no username it will be disconnected as not
|
||||
# authorised when this option is set to true.
|
||||
# Do not use in conjunction with clientid_prefixes.
|
||||
# See also use_identity_as_username.
|
||||
#use_username_as_clientid
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Certificate based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# The following options can be used to enable certificate based SSL/TLS support
|
||||
# for this listener. Note that the recommended port for MQTT over TLS is 8883,
|
||||
# but this must be set manually.
|
||||
#
|
||||
# See also the mosquitto-tls man page and the "Pre-shared-key based SSL/TLS
|
||||
# support" section. Only one of certificate or PSK encryption support can be
|
||||
# enabled for any listener.
|
||||
|
||||
# At least one of cafile or capath must be defined to enable certificate based
|
||||
# TLS encryption. They both define methods of accessing the PEM encoded
|
||||
# Certificate Authority certificates that have signed your server certificate
|
||||
# and that you wish to trust.
|
||||
# cafile defines the path to a file containing the CA certificates.
|
||||
# capath defines a directory that will be searched for files
|
||||
# containing the CA certificates. For capath to work correctly, the
|
||||
# certificate files must have ".crt" as the file ending and you must run
|
||||
# "c_rehash <path to capath>" each time you add/remove a certificate.
|
||||
#cafile
|
||||
#capath
|
||||
|
||||
# Path to the PEM encoded server certificate.
|
||||
#certfile
|
||||
|
||||
# Path to the PEM encoded keyfile.
|
||||
#keyfile
|
||||
|
||||
# By default an TLS enabled listener will operate in a similar fashion to a
|
||||
# https enabled web server, in that the server has a certificate signed by a CA
|
||||
# and the client will verify that it is a trusted certificate. The overall aim
|
||||
# is encryption of the network traffic. By setting require_certificate to true,
|
||||
# the client must provide a valid certificate in order for the network
|
||||
# connection to proceed. This allows access to the broker to be controlled
|
||||
# outside of the mechanisms provided by MQTT.
|
||||
#require_certificate false
|
||||
|
||||
# If require_certificate is true, you may set use_identity_as_username to true
|
||||
# to use the CN value from the client certificate as a username. If this is
|
||||
# true, the password_file option will not be used for this listener.
|
||||
#use_identity_as_username false
|
||||
|
||||
# If you have require_certificate set to true, you can create a certificate
|
||||
# revocation list file to revoke access to particular client certificates. If
|
||||
# you have done this, use crlfile to point to the PEM encoded revocation file.
|
||||
#crlfile
|
||||
|
||||
# If you wish to control which encryption ciphers are used, use the ciphers
|
||||
# option. The list of available ciphers can be optained using the "openssl
|
||||
# ciphers" command and should be provided in the same format as the output of
|
||||
# that command.
|
||||
#ciphers
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Pre-shared-key based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# The following options can be used to enable PSK based SSL/TLS support for
|
||||
# this listener. Note that the recommended port for MQTT over TLS is 8883, but
|
||||
# this must be set manually.
|
||||
#
|
||||
# See also the mosquitto-tls man page and the "Certificate based SSL/TLS
|
||||
# support" section. Only one of certificate or PSK encryption support can be
|
||||
# enabled for any listener.
|
||||
|
||||
# The psk_hint option enables pre-shared-key support for this listener and also
|
||||
# acts as an identifier for this listener. The hint is sent to clients and may
|
||||
# be used locally to aid authentication. The hint is a free form string that
|
||||
# doesn't have much meaning in itself, so feel free to be creative.
|
||||
# If this option is provided, see psk_file to define the pre-shared keys to be
|
||||
# used or create a security plugin to handle them.
|
||||
#psk_hint
|
||||
|
||||
# Set use_identity_as_username to have the psk identity sent by the client used
|
||||
# as its username. Authentication will be carried out using the PSK rather than
|
||||
# the MQTT username/password and so password_file will not be used for this
|
||||
# listener.
|
||||
#use_identity_as_username false
|
||||
|
||||
# When using PSK, the encryption ciphers used will be chosen from the list of
|
||||
# available PSK ciphers. If you want to control which ciphers are available,
|
||||
# use the "ciphers" option. The list of available ciphers can be optained
|
||||
# using the "openssl ciphers" command and should be provided in the same format
|
||||
# as the output of that command.
|
||||
#ciphers
|
||||
|
||||
# =================================================================
|
||||
# Persistence
|
||||
# =================================================================
|
||||
|
||||
# If persistence is enabled, save the in-memory database to disk
|
||||
# every autosave_interval seconds. If set to 0, the persistence
|
||||
# database will only be written when mosquitto exits. See also
|
||||
# autosave_on_changes.
|
||||
# Note that writing of the persistence database can be forced by
|
||||
# sending mosquitto a SIGUSR1 signal.
|
||||
#autosave_interval 1800
|
||||
|
||||
# If true, mosquitto will count the number of subscription changes, retained
|
||||
# messages received and queued messages and if the total exceeds
|
||||
# autosave_interval then the in-memory database will be saved to disk.
|
||||
# If false, mosquitto will save the in-memory database to disk by treating
|
||||
# autosave_interval as a time in seconds.
|
||||
#autosave_on_changes false
|
||||
|
||||
# Save persistent message data to disk (true/false).
|
||||
# This saves information about all messages, including
|
||||
# subscriptions, currently in-flight messages and retained
|
||||
# messages.
|
||||
# retained_persistence is a synonym for this option.
|
||||
persistence true
|
||||
|
||||
# The filename to use for the persistent database, not including
|
||||
# the path.
|
||||
#persistence_file mosquitto.db
|
||||
|
||||
# Location for persistent database. Must include trailing /
|
||||
# Default is an empty string (current directory).
|
||||
# Set to e.g. /var/lib/mosquitto/ if running as a proper service on Linux or
|
||||
# similar.
|
||||
persistence_location /mosquitto/data/
|
||||
|
||||
# =================================================================
|
||||
# Logging
|
||||
# =================================================================
|
||||
|
||||
# Places to log to. Use multiple log_dest lines for multiple
|
||||
# logging destinations.
|
||||
# Possible destinations are: stdout stderr syslog topic file
|
||||
#
|
||||
# stdout and stderr log to the console on the named output.
|
||||
#
|
||||
# syslog uses the userspace syslog facility which usually ends up
|
||||
# in /var/log/messages or similar.
|
||||
#
|
||||
# topic logs to the broker topic '$SYS/broker/log/<severity>',
|
||||
# where severity is one of D, E, W, N, I, M which are debug, error,
|
||||
# warning, notice, information and message. Message type severity is used by
|
||||
# the subscribe/unsubscribe log_types and publishes log messages to
|
||||
# $SYS/broker/log/M/susbcribe or $SYS/broker/log/M/unsubscribe.
|
||||
#
|
||||
# The file destination requires an additional parameter which is the file to be
|
||||
# logged to, e.g. "log_dest file /var/log/mosquitto.log". The file will be
|
||||
# closed and reopened when the broker receives a HUP signal. Only a single file
|
||||
# destination may be configured.
|
||||
#
|
||||
# Note that if the broker is running as a Windows service it will default to
|
||||
# "log_dest none" and neither stdout nor stderr logging is available.
|
||||
# Use "log_dest none" if you wish to disable logging.
|
||||
log_dest file /mosquitto/log/mosquitto.log
|
||||
|
||||
# If using syslog logging (not on Windows), messages will be logged to the
|
||||
# "daemon" facility by default. Use the log_facility option to choose which of
|
||||
# local0 to local7 to log to instead. The option value should be an integer
|
||||
# value, e.g. "log_facility 5" to use local5.
|
||||
#log_facility
|
||||
|
||||
# Types of messages to log. Use multiple log_type lines for logging
|
||||
# multiple types of messages.
|
||||
# Possible types are: debug, error, warning, notice, information,
|
||||
# none, subscribe, unsubscribe, websockets, all.
|
||||
# Note that debug type messages are for decoding the incoming/outgoing
|
||||
# network packets. They are not logged in "topics".
|
||||
log_type error
|
||||
log_type warning
|
||||
log_type notice
|
||||
log_type information
|
||||
log_type all
|
||||
|
||||
# Change the websockets logging level. This is a global option, it is not
|
||||
# possible to set per listener. This is an integer that is interpreted by
|
||||
# libwebsockets as a bit mask for its lws_log_levels enum. See the
|
||||
# libwebsockets documentation for more details. "log_type websockets" must also
|
||||
# be enabled.
|
||||
#websockets_log_level 0
|
||||
|
||||
# If set to true, client connection and disconnection messages will be included
|
||||
# in the log.
|
||||
#connection_messages true
|
||||
|
||||
# If set to true, add a timestamp value to each log message.
|
||||
#log_timestamp true
|
||||
|
||||
# =================================================================
|
||||
# Security
|
||||
# =================================================================
|
||||
|
||||
# If set, only clients that have a matching prefix on their
|
||||
# clientid will be allowed to connect to the broker. By default,
|
||||
# all clients may connect.
|
||||
# For example, setting "secure-" here would mean a client "secure-
|
||||
# client" could connect but another with clientid "mqtt" couldn't.
|
||||
#clientid_prefixes
|
||||
|
||||
# Boolean value that determines whether clients that connect
|
||||
# without providing a username are allowed to connect. If set to
|
||||
# false then a password file should be created (see the
|
||||
# password_file option) to control authenticated client access.
|
||||
# Defaults to true.
|
||||
#allow_anonymous true
|
||||
|
||||
# In addition to the clientid_prefixes, allow_anonymous and TLS
|
||||
# authentication options, username based authentication is also
|
||||
# possible. The default support is described in "Default
|
||||
# authentication and topic access control" below. The auth_plugin
|
||||
# allows another authentication method to be used.
|
||||
# Specify the path to the loadable plugin and see the
|
||||
# "Authentication and topic access plugin options" section below.
|
||||
#auth_plugin
|
||||
|
||||
# If auth_plugin_deny_special_chars is true, the default, then before an ACL
|
||||
# check is made, the username/client id of the client needing the check is
|
||||
# searched for the presence of either a '+' or '#' character. If either of
|
||||
# these characters is found in either the username or client id, then the ACL
|
||||
# check is denied before it is sent to the plugin.o
|
||||
#
|
||||
# This check prevents the case where a malicious user could circumvent an ACL
|
||||
# check by using one of these characters as their username or client id. This
|
||||
# is the same issue as was reported with mosquitto itself as CVE-2017-7650.
|
||||
#
|
||||
# If you are entirely sure that the plugin you are using is not vulnerable to
|
||||
# this attack (i.e. if you never use usernames or client ids in topics) then
|
||||
# you can disable this extra check and have all ACL checks delivered to your
|
||||
# plugin by setting auth_plugin_deny_special_chars to false.
|
||||
#auth_plugin_deny_special_chars true
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Default authentication and topic access control
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
# Control access to the broker using a password file. This file can be
|
||||
# generated using the mosquitto_passwd utility. If TLS support is not compiled
|
||||
# into mosquitto (it is recommended that TLS support should be included) then
|
||||
# plain text passwords are used, in which case the file should be a text file
|
||||
# with lines in the format:
|
||||
# username:password
|
||||
# The password (and colon) may be omitted if desired, although this
|
||||
# offers very little in the way of security.
|
||||
#
|
||||
# See the TLS client require_certificate and use_identity_as_username options
|
||||
# for alternative authentication options.
|
||||
#password_file
|
||||
|
||||
# Access may also be controlled using a pre-shared-key file. This requires
|
||||
# TLS-PSK support and a listener configured to use it. The file should be text
|
||||
# lines in the format:
|
||||
# identity:key
|
||||
# The key should be in hexadecimal format without a leading "0x".
|
||||
#psk_file
|
||||
|
||||
# Control access to topics on the broker using an access control list
|
||||
# file. If this parameter is defined then only the topics listed will
|
||||
# have access.
|
||||
# If the first character of a line of the ACL file is a # it is treated as a
|
||||
# comment.
|
||||
# Topic access is added with lines of the format:
|
||||
#
|
||||
# topic [read|write|readwrite] <topic>
|
||||
#
|
||||
# The access type is controlled using "read", "write" or "readwrite". This
|
||||
# parameter is optional (unless <topic> contains a space character) - if not
|
||||
# given then the access is read/write. <topic> can contain the + or #
|
||||
# wildcards as in subscriptions.
|
||||
#
|
||||
# The first set of topics are applied to anonymous clients, assuming
|
||||
# allow_anonymous is true. User specific topic ACLs are added after a
|
||||
# user line as follows:
|
||||
#
|
||||
# user <username>
|
||||
#
|
||||
# The username referred to here is the same as in password_file. It is
|
||||
# not the clientid.
|
||||
#
|
||||
#
|
||||
# If is also possible to define ACLs based on pattern substitution within the
|
||||
# topic. The patterns available for substition are:
|
||||
#
|
||||
# %c to match the client id of the client
|
||||
# %u to match the username of the client
|
||||
#
|
||||
# The substitution pattern must be the only text for that level of hierarchy.
|
||||
#
|
||||
# The form is the same as for the topic keyword, but using pattern as the
|
||||
# keyword.
|
||||
# Pattern ACLs apply to all users even if the "user" keyword has previously
|
||||
# been given.
|
||||
#
|
||||
# If using bridges with usernames and ACLs, connection messages can be allowed
|
||||
# with the following pattern:
|
||||
# pattern write $SYS/broker/connection/%c/state
|
||||
#
|
||||
# pattern [read|write|readwrite] <topic>
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# pattern write sensor/%u/data
|
||||
#
|
||||
#acl_file
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Authentication and topic access plugin options
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
# If the auth_plugin option above is used, define options to pass to the
|
||||
# plugin here as described by the plugin instructions. All options named
|
||||
# using the format auth_opt_* will be passed to the plugin, for example:
|
||||
#
|
||||
# auth_opt_db_host
|
||||
# auth_opt_db_port
|
||||
# auth_opt_db_username
|
||||
# auth_opt_db_password
|
||||
|
||||
|
||||
# =================================================================
|
||||
# Bridges
|
||||
# =================================================================
|
||||
|
||||
# A bridge is a way of connecting multiple MQTT brokers together.
|
||||
# Create a new bridge using the "connection" option as described below. Set
|
||||
# options for the bridges using the remaining parameters. You must specify the
|
||||
# address and at least one topic to subscribe to.
|
||||
# Each connection must have a unique name.
|
||||
# The address line may have multiple host address and ports specified. See
|
||||
# below in the round_robin description for more details on bridge behaviour if
|
||||
# multiple addresses are used.
|
||||
# The direction that the topic will be shared can be chosen by
|
||||
# specifying out, in or both, where the default value is out.
|
||||
# The QoS level of the bridged communication can be specified with the next
|
||||
# topic option. The default QoS level is 0, to change the QoS the topic
|
||||
# direction must also be given.
|
||||
# The local and remote prefix options allow a topic to be remapped when it is
|
||||
# bridged to/from the remote broker. This provides the ability to place a topic
|
||||
# tree in an appropriate location.
|
||||
# For more details see the mosquitto.conf man page.
|
||||
# Multiple topics can be specified per connection, but be careful
|
||||
# not to create any loops.
|
||||
# If you are using bridges with cleansession set to false (the default), then
|
||||
# you may get unexpected behaviour from incoming topics if you change what
|
||||
# topics you are subscribing to. This is because the remote broker keeps the
|
||||
# subscription for the old topic. If you have this problem, connect your bridge
|
||||
# with cleansession set to true, then reconnect with cleansession set to false
|
||||
# as normal.
|
||||
#connection <name>
|
||||
#address <host>[:<port>] [<host>[:<port>]]
|
||||
#topic <topic> [[[out | in | both] qos-level] local-prefix remote-prefix]
|
||||
|
||||
# Set the version of the MQTT protocol to use with for this bridge. Can be one
|
||||
# of mqttv31 or mqttv311. Defaults to mqttv31.
|
||||
#bridge_protocol_version mqttv31
|
||||
|
||||
# If a bridge has topics that have "out" direction, the default behaviour is to
|
||||
# send an unsubscribe request to the remote broker on that topic. This means
|
||||
# that changing a topic direction from "in" to "out" will not keep receiving
|
||||
# incoming messages. Sending these unsubscribe requests is not always
|
||||
# desirable, setting bridge_attempt_unsubscribe to false will disable sending
|
||||
# the unsubscribe request.
|
||||
#bridge_attempt_unsubscribe true
|
||||
|
||||
# If the bridge has more than one address given in the address/addresses
|
||||
# configuration, the round_robin option defines the behaviour of the bridge on
|
||||
# a failure of the bridge connection. If round_robin is false, the default
|
||||
# value, then the first address is treated as the main bridge connection. If
|
||||
# the connection fails, the other secondary addresses will be attempted in
|
||||
# turn. Whilst connected to a secondary bridge, the bridge will periodically
|
||||
# attempt to reconnect to the main bridge until successful.
|
||||
# If round_robin is true, then all addresses are treated as equals. If a
|
||||
# connection fails, the next address will be tried and if successful will
|
||||
# remain connected until it fails
|
||||
#round_robin false
|
||||
|
||||
# Set the client id to use on the remote end of this bridge connection. If not
|
||||
# defined, this defaults to 'name.hostname' where name is the connection name
|
||||
# and hostname is the hostname of this computer.
|
||||
# This replaces the old "clientid" option to avoid confusion. "clientid"
|
||||
# remains valid for the time being.
|
||||
#remote_clientid
|
||||
|
||||
# Set the clientid to use on the local broker. If not defined, this defaults to
|
||||
# 'local.<clientid>'. If you are bridging a broker to itself, it is important
|
||||
# that local_clientid and clientid do not match.
|
||||
#local_clientid
|
||||
|
||||
# Set the clean session variable for this bridge.
|
||||
# When set to true, when the bridge disconnects for any reason, all
|
||||
# messages and subscriptions will be cleaned up on the remote
|
||||
# broker. Note that with cleansession set to true, there may be a
|
||||
# significant amount of retained messages sent when the bridge
|
||||
# reconnects after losing its connection.
|
||||
# When set to false, the subscriptions and messages are kept on the
|
||||
# remote broker, and delivered when the bridge reconnects.
|
||||
#cleansession false
|
||||
|
||||
# If set to true, publish notification messages to the local and remote brokers
|
||||
# giving information about the state of the bridge connection. Retained
|
||||
# messages are published to the topic $SYS/broker/connection/<clientid>/state
|
||||
# unless the notification_topic option is used.
|
||||
# If the message is 1 then the connection is active, or 0 if the connection has
|
||||
# failed.
|
||||
#notifications true
|
||||
|
||||
# Choose the topic on which notification messages for this bridge are
|
||||
# published. If not set, messages are published on the topic
|
||||
# $SYS/broker/connection/<clientid>/state
|
||||
#notification_topic
|
||||
|
||||
# Set the keepalive interval for this bridge connection, in
|
||||
# seconds.
|
||||
#keepalive_interval 60
|
||||
|
||||
# Set the start type of the bridge. This controls how the bridge starts and
|
||||
# can be one of three types: automatic, lazy and once. Note that RSMB provides
|
||||
# a fourth start type "manual" which isn't currently supported by mosquitto.
|
||||
#
|
||||
# "automatic" is the default start type and means that the bridge connection
|
||||
# will be started automatically when the broker starts and also restarted
|
||||
# after a short delay (30 seconds) if the connection fails.
|
||||
#
|
||||
# Bridges using the "lazy" start type will be started automatically when the
|
||||
# number of queued messages exceeds the number set with the "threshold"
|
||||
# parameter. It will be stopped automatically after the time set by the
|
||||
# "idle_timeout" parameter. Use this start type if you wish the connection to
|
||||
# only be active when it is needed.
|
||||
#
|
||||
# A bridge using the "once" start type will be started automatically when the
|
||||
# broker starts but will not be restarted if the connection fails.
|
||||
#start_type automatic
|
||||
|
||||
# Set the amount of time a bridge using the automatic start type will wait
|
||||
# until attempting to reconnect. Defaults to 30 seconds.
|
||||
#restart_timeout 30
|
||||
|
||||
# Set the amount of time a bridge using the lazy start type must be idle before
|
||||
# it will be stopped. Defaults to 60 seconds.
|
||||
#idle_timeout 60
|
||||
|
||||
# Set the number of messages that need to be queued for a bridge with lazy
|
||||
# start type to be restarted. Defaults to 10 messages.
|
||||
# Must be less than max_queued_messages.
|
||||
#threshold 10
|
||||
|
||||
# If try_private is set to true, the bridge will attempt to indicate to the
|
||||
# remote broker that it is a bridge not an ordinary client. If successful, this
|
||||
# means that loop detection will be more effective and that retained messages
|
||||
# will be propagated correctly. Not all brokers support this feature so it may
|
||||
# be necessary to set try_private to false if your bridge does not connect
|
||||
# properly.
|
||||
#try_private true
|
||||
|
||||
# Set the username to use when connecting to a broker that requires
|
||||
# authentication.
|
||||
# This replaces the old "username" option to avoid confusion. "username"
|
||||
# remains valid for the time being.
|
||||
#remote_username
|
||||
|
||||
# Set the password to use when connecting to a broker that requires
|
||||
# authentication. This option is only used if remote_username is also set.
|
||||
# This replaces the old "password" option to avoid confusion. "password"
|
||||
# remains valid for the time being.
|
||||
#remote_password
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# Certificate based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# Either bridge_cafile or bridge_capath must be defined to enable TLS support
|
||||
# for this bridge.
|
||||
# bridge_cafile defines the path to a file containing the
|
||||
# Certificate Authority certificates that have signed the remote broker
|
||||
# certificate.
|
||||
# bridge_capath defines a directory that will be searched for files containing
|
||||
# the CA certificates. For bridge_capath to work correctly, the certificate
|
||||
# files must have ".crt" as the file ending and you must run "c_rehash <path to
|
||||
# capath>" each time you add/remove a certificate.
|
||||
#bridge_cafile
|
||||
#bridge_capath
|
||||
|
||||
# Path to the PEM encoded client certificate, if required by the remote broker.
|
||||
#bridge_certfile
|
||||
|
||||
# Path to the PEM encoded client private key, if required by the remote broker.
|
||||
#bridge_keyfile
|
||||
|
||||
# When using certificate based encryption, bridge_insecure disables
|
||||
# verification of the server hostname in the server certificate. This can be
|
||||
# useful when testing initial server configurations, but makes it possible for
|
||||
# a malicious third party to impersonate your server through DNS spoofing, for
|
||||
# example. Use this option in testing only. If you need to resort to using this
|
||||
# option in a production environment, your setup is at fault and there is no
|
||||
# point using encryption.
|
||||
#bridge_insecure false
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# PSK based SSL/TLS support
|
||||
# -----------------------------------------------------------------
|
||||
# Pre-shared-key encryption provides an alternative to certificate based
|
||||
# encryption. A bridge can be configured to use PSK with the bridge_identity
|
||||
# and bridge_psk options. These are the client PSK identity, and pre-shared-key
|
||||
# in hexadecimal format with no "0x". Only one of certificate and PSK based
|
||||
# encryption can be used on one
|
||||
# bridge at once.
|
||||
#bridge_identity
|
||||
#bridge_psk
|
||||
|
||||
|
||||
# =================================================================
|
||||
# External config files
|
||||
# =================================================================
|
||||
|
||||
# External configuration files may be included by using the
|
||||
# include_dir option. This defines a directory that will be searched
|
||||
# for config files. All files that end in '.conf' will be loaded as
|
||||
# a configuration file. It is best to have this as the last option
|
||||
# in the main file. This option will only be processed from the main
|
||||
# configuration file. The directory specified must not contain the
|
||||
# main configuration file.
|
||||
#include_dir
|
||||
|
||||
# =================================================================
|
||||
# rsmb options - unlikely to ever be supported
|
||||
# =================================================================
|
||||
|
||||
#ffdc_output
|
||||
#max_log_entries
|
||||
#trace_level
|
||||
#trace_output
|
@ -9,12 +9,12 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN chown -R mysql:root /var/lib/mysql/
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
|
||||
|
||||
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||
|
||||
RUN chmod 0444 /etc/mysql/conf.d/my.cnf
|
||||
|
||||
CMD ["mysqld"]
|
||||
|
||||
EXPOSE 3306
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copy createdb.sql.example to createdb.sql
|
||||
# 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` ;
|
||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||
|
@ -6,5 +6,5 @@
|
||||
[mysql]
|
||||
|
||||
[mysqld]
|
||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
|
||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
|
||||
character-set-server=utf8
|
||||
|
@ -14,16 +14,29 @@ RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
||||
|
||||
RUN apk update \
|
||||
&& apk upgrade \
|
||||
&& apk add --no-cache bash \
|
||||
&& adduser -D -H -u 1000 -s /bin/bash www-data
|
||||
&& apk --update add logrotate \
|
||||
&& apk add --no-cache openssl \
|
||||
&& apk add --no-cache bash
|
||||
|
||||
RUN set -x ; \
|
||||
addgroup -g 82 -S www-data ; \
|
||||
adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1
|
||||
|
||||
ARG PHP_UPSTREAM_CONTAINER=php-fpm
|
||||
ARG PHP_UPSTREAM_PORT=9000
|
||||
|
||||
# Create 'messages' file used from 'logrotate'
|
||||
RUN touch /var/log/messages
|
||||
|
||||
# Copy 'logrotate' config file
|
||||
COPY logrotate/nginx /etc/logrotate.d/
|
||||
|
||||
# Set upstream conf and remove the default 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
|
||||
|
||||
CMD ["nginx"]
|
||||
ADD ./startup.sh /opt/startup.sh
|
||||
RUN sed -i 's/\r//g' /opt/startup.sh
|
||||
CMD ["/bin/bash", "/opt/startup.sh"]
|
||||
|
||||
EXPOSE 80 443
|
||||
|
14
nginx/logrotate/nginx
Normal file
14
nginx/logrotate/nginx
Normal file
@ -0,0 +1,14 @@
|
||||
/var/log/nginx/*.log {
|
||||
daily
|
||||
missingok
|
||||
rotate 32
|
||||
compress
|
||||
delaycompress
|
||||
nodateext
|
||||
notifempty
|
||||
create 644 www-data root
|
||||
sharedscripts
|
||||
postrotate
|
||||
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
|
||||
endscript
|
||||
}
|
@ -3,6 +3,12 @@ server {
|
||||
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;
|
||||
root /var/www/app;
|
||||
index index.php index.html index.htm;
|
||||
|
43
nginx/sites/confluence.conf.example
Normal file
43
nginx/sites/confluence.conf.example
Normal file
@ -0,0 +1,43 @@
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name www.confluence-domain.com;
|
||||
rewrite ^(.*) https://confluence-domain.com$1/ permanent;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name confluence-domain.com;
|
||||
rewrite ^(.*) https://confluence-domain.com/ permanent;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
ssl_certificate /etc/nginx/ssl/confluence-domain.com.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/confluence-domain.com.key;
|
||||
|
||||
server_name confluence-domain.com;
|
||||
|
||||
location / {
|
||||
client_max_body_size 100m;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_pass http://confluence-domain.com:8090/;
|
||||
}
|
||||
|
||||
location /synchrony {
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_pass http://confluence-domain.com:8090/synchrony-proxy;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
}
|
||||
|
||||
error_log /var/log/nginx/bookchangerru_error.log;
|
||||
access_log /var/log/nginx/bookchangerru_access.log;
|
||||
}
|
@ -3,6 +3,12 @@ server {
|
||||
listen 80 default_server;
|
||||
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;
|
||||
root /var/www/public;
|
||||
index index.php index.html index.htm;
|
||||
|
@ -3,6 +3,12 @@ server {
|
||||
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;
|
||||
root /var/www/laravel/public;
|
||||
index index.php index.html index.htm;
|
||||
|
@ -3,6 +3,12 @@ server {
|
||||
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;
|
||||
root /var/www/projects/symfony/web;
|
||||
index index.php index.html index.htm;
|
||||
|
4
nginx/ssl/.gitignore
vendored
Normal file
4
nginx/ssl/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
*.crt
|
||||
*.csr
|
||||
*.key
|
||||
*.pem
|
13
nginx/startup.sh
Normal file
13
nginx/startup.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/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
|
||||
|
||||
# Start crond in background
|
||||
crond -l 2 -b
|
||||
|
||||
# Start nginx in foreground
|
||||
nginx
|
@ -1,10 +0,0 @@
|
||||
FROM fenglc/pgadmin4
|
||||
|
||||
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
||||
|
||||
# user: pgadmin4@pgadmin.org
|
||||
# password: admin
|
||||
# pg_dump & postgresql all in "/usr/bin"
|
||||
# backup in "/var/lib/pgadmin/storage/pgadmin4"
|
||||
|
||||
EXPOSE 5050
|
@ -12,26 +12,49 @@
|
||||
# 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.6.2-${LARADOCK_PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
RUN apt-get update -yqq && \
|
||||
pecl channel-update pecl.php.net
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
|
||||
|
||||
ARG CHANGE_SOURCE=false
|
||||
RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
||||
# Change application source from deb.debian.org to aliyun source
|
||||
sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list && \
|
||||
sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list && \
|
||||
sed -i 's/security-cdn.debian.org/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list \
|
||||
;fi
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
RUN set -xe; \
|
||||
apt-get update -yqq && \
|
||||
pecl channel-update pecl.php.net && \
|
||||
apt-get install -yqq \
|
||||
apt-utils \
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
# next lines are here becase there is no auto build on dockerhub see https://github.com/laradock/laradock/pull/1903#issuecomment-463142846
|
||||
libzip-dev zip unzip && \
|
||||
docker-php-ext-configure zip --with-libzip && \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip && \
|
||||
php -m | grep -q 'zip'
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -41,9 +64,38 @@ RUN apt-get update -yqq && \
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
# - INSTALL_SOAP=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:
|
||||
###########################################################################
|
||||
@ -57,6 +109,18 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# XSL:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XSL=false
|
||||
|
||||
RUN if [ ${INSTALL_XSL} = true ]; then \
|
||||
# Install the xsl extension
|
||||
apt-get -y install libxslt-dev && \
|
||||
docker-php-ext-install xsl \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# pgsql
|
||||
###########################################################################
|
||||
@ -73,13 +137,17 @@ RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PG_CLIENT=false
|
||||
ARG INSTALL_POSTGIS=false
|
||||
|
||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
# Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65)
|
||||
mkdir -p /usr/share/man/man1 && \
|
||||
mkdir -p /usr/share/man/man7 && \
|
||||
# Install the pgsql client
|
||||
apt-get install -y postgresql-client \
|
||||
apt-get install -y postgresql-client && \
|
||||
if [ ${INSTALL_POSTGIS} = true ]; then \
|
||||
apt-get install -y postgis; \
|
||||
fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -105,6 +173,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.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:
|
||||
###########################################################################
|
||||
@ -127,9 +206,13 @@ ARG INSTALL_PHPREDIS=false
|
||||
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
printf "\n" | pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install -o -f redis-4.3.0; \
|
||||
else \
|
||||
pecl install -o -f redis; \
|
||||
fi \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -141,7 +224,7 @@ ARG INSTALL_SWOOLE=false
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install swoole-2.0.11; \
|
||||
pecl install swoole-2.0.10; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
pecl install swoole-2.2.0; \
|
||||
@ -150,6 +233,22 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
fi \
|
||||
fi && \
|
||||
docker-php-ext-enable swoole \
|
||||
&& php -m | grep -q 'swoole' \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Taint EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_TAINT=false
|
||||
|
||||
RUN if [ ${INSTALL_TAINT} = true ]; then \
|
||||
# Install Php TAINT Extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ]; then \
|
||||
pecl install taint && \
|
||||
docker-php-ext-enable taint && \
|
||||
php -m | grep -q 'taint'; \
|
||||
fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -160,10 +259,46 @@ ARG INSTALL_MONGO=false
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
docker-php-ext-enable mongo \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Xhprof:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XHPROF=false
|
||||
|
||||
RUN if [ ${INSTALL_XHPROF} = true ]; then \
|
||||
# Install the php xhprof extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = 7 ]; then \
|
||||
curl -L -o /tmp/xhprof.tar.gz "https://github.com/tideways/php-xhprof-extension/archive/v5.0.1.tar.gz"; \
|
||||
else \
|
||||
curl -L -o /tmp/xhprof.tar.gz "https://codeload.github.com/phacility/xhprof/tar.gz/master"; \
|
||||
fi \
|
||||
&& mkdir -p xhprof \
|
||||
&& tar -C xhprof -zxvf /tmp/xhprof.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd xhprof \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm -r xhprof \
|
||||
&& rm /tmp/xhprof.tar.gz \
|
||||
;fi
|
||||
|
||||
COPY ./xhprof.ini /usr/local/etc/php/conf.d
|
||||
|
||||
RUN if [ ${INSTALL_XHPROF} = false ]; then \
|
||||
rm /usr/local/etc/php/conf.d/xhprof.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# AMQP:
|
||||
###########################################################################
|
||||
@ -171,21 +306,45 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
ARG INSTALL_AMQP=false
|
||||
|
||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
apt-get install librabbitmq-dev -y && \
|
||||
# download and install manually, to make sure it's compatible with ampq installed by pecl later
|
||||
# install cmake first
|
||||
apt-get update && apt-get -y install cmake && \
|
||||
curl -L -o /tmp/rabbitmq-c.tar.gz https://github.com/alanxz/rabbitmq-c/archive/master.tar.gz && \
|
||||
mkdir -p rabbitmq-c && \
|
||||
tar -C rabbitmq-c -zxvf /tmp/rabbitmq-c.tar.gz --strip 1 && \
|
||||
cd rabbitmq-c/ && \
|
||||
mkdir _build && cd _build/ && \
|
||||
cmake .. && \
|
||||
cmake --build . --target install && \
|
||||
# Install the amqp extension
|
||||
pecl install amqp && \
|
||||
docker-php-ext-enable amqp \
|
||||
docker-php-ext-enable amqp && \
|
||||
# Install the sockets extension
|
||||
docker-php-ext-install sockets \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ZipArchive:
|
||||
# GEARMAN:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
ARG INSTALL_GEARMAN=false
|
||||
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip \
|
||||
RUN if [ ${INSTALL_GEARMAN} = true ]; then \
|
||||
apt-get update && \
|
||||
apt-get -y install libgearman-dev && \
|
||||
cd /tmp && \
|
||||
curl -L https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.5.zip -O && \
|
||||
unzip gearman-2.0.5.zip && \
|
||||
mv pecl-gearman-gearman-2.0.5 pecl-gearman && \
|
||||
cd /tmp/pecl-gearman && \
|
||||
phpize && \
|
||||
./configure && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && \
|
||||
rm /tmp/gearman-2.0.5.zip && \
|
||||
rm -r /tmp/pecl-gearman && \
|
||||
docker-php-ext-enable gearman \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -193,7 +352,7 @@ RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PCNTL=false
|
||||
RUN if [ ${INSTALL_PCNTL} = true]; then \
|
||||
RUN if [ ${INSTALL_PCNTL} = true ]; then \
|
||||
# Installs pcntl, helpful for running Horizon
|
||||
docker-php-ext-install pcntl \
|
||||
;fi
|
||||
@ -233,21 +392,10 @@ ARG INSTALL_MEMCACHED=false
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
|
||||
pecl install memcached-2.2.0; \
|
||||
else \
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz"; \
|
||||
pecl install memcached-3.1.3; \
|
||||
fi \
|
||||
&& mkdir -p memcached \
|
||||
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd memcached \
|
||||
&& phpize \
|
||||
&& ./configure \
|
||||
&& make -j$(nproc) \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm -r memcached \
|
||||
&& rm /tmp/memcached.tar.gz \
|
||||
&& docker-php-ext-enable memcached \
|
||||
;fi
|
||||
|
||||
@ -269,30 +417,30 @@ RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ARG AEROSPIKE_PHP_REPOSITORY
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
RUN set -xe; \
|
||||
if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Fix dependencies for PHPUnit within aerospike extension
|
||||
apt-get -y install sudo wget && \
|
||||
# Install the php aerospike extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz; \
|
||||
else \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY}; \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz; \
|
||||
fi \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& mkdir -p /tmp/aerospike-client-php \
|
||||
&& tar -C /tmp/aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
cd /tmp/aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
else \
|
||||
( \
|
||||
cd aerospike-client-php/src \
|
||||
cd /tmp/aerospike-client-php/src \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
@ -302,6 +450,21 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
&& docker-php-ext-enable aerospike \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# IonCube Loader:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_IONCUBE=false
|
||||
|
||||
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
|
||||
# Install the php ioncube loader
|
||||
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
|
||||
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
|
||||
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
|
||||
&& printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \
|
||||
&& rm -rf /tmp/ioncube* \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Opcache:
|
||||
###########################################################################
|
||||
@ -325,15 +488,6 @@ RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
||||
docker-php-ext-install mysqli \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Tokenizer Modifications:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_TOKENIZER=false
|
||||
|
||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
||||
docker-php-ext-install tokenizer \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Human Language and Character Encoding Support:
|
||||
@ -380,7 +534,8 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
|
||||
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 \
|
||||
apt-get -y install freetds-dev libsybdb5 \
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \
|
||||
@ -394,19 +549,25 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||
apt-get install -y apt-transport-https gnupg \
|
||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
# Install Dependencies
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||
# link local aliases
|
||||
&& ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \
|
||||
&& locale-gen \
|
||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
pecl install pdo_sqlsrv-5.3.0 sqlsrv-5.3.0 \
|
||||
;else \
|
||||
pecl install pdo_sqlsrv sqlsrv \
|
||||
;fi \
|
||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
;fi \
|
||||
;fi
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Image optimizers:
|
||||
@ -417,7 +578,7 @@ USER root
|
||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||
apt-get install -y --force-yes jpegoptim optipng pngquant gifsicle \
|
||||
apt-get install -y jpegoptim optipng pngquant gifsicle \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -442,18 +603,206 @@ ARG INSTALL_IMAP=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||
apt-get install -y libc-client-dev libkrb5-dev && \
|
||||
rm -r /var/lib/apt/lists/* && \
|
||||
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
|
||||
docker-php-ext-install imap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# 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}
|
||||
|
||||
# Copy phalcon configration
|
||||
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 \
|
||||
&& 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 \
|
||||
&& mv /usr/local/etc/php/conf.d/phalcon.ini.disable /usr/local/etc/php/conf.d/phalcon.ini \
|
||||
&& rm -rf /tmp/cphalcon* \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# APCU:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_APCU=false
|
||||
|
||||
RUN if [ ${INSTALL_APCU} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install -a apcu-4.0.11; \
|
||||
else \
|
||||
pecl install apcu; \
|
||||
fi && \
|
||||
docker-php-ext-enable apcu \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# YAML:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_YAML=false
|
||||
|
||||
RUN if [ ${INSTALL_YAML} = true ]; then \
|
||||
apt-get install libyaml-dev -y ; \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install -a yaml-1.3.2; \
|
||||
else \
|
||||
pecl install yaml; \
|
||||
fi && \
|
||||
docker-php-ext-enable yaml \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# RDKAFKA:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_RDKAFKA=false
|
||||
|
||||
RUN if [ ${INSTALL_RDKAFKA} = true ]; then \
|
||||
apt-get install -y librdkafka-dev && \
|
||||
pecl install rdkafka && \
|
||||
docker-php-ext-enable rdkafka \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# GETTEXT:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_GETTEXT=false
|
||||
|
||||
RUN if [ ${INSTALL_GETTEXT} = true ]; then \
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ libpq-dev libssl-dev gettext && \
|
||||
docker-php-ext-install gettext \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Install additional locales:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_ADDITIONAL_LOCALES=false
|
||||
ARG ADDITIONAL_LOCALES
|
||||
|
||||
RUN if [ ${INSTALL_ADDITIONAL_LOCALES} = true ]; then \
|
||||
apt-get install -y locales \
|
||||
&& echo '' >> /usr/share/locale/locale.alias \
|
||||
&& temp="${ADDITIONAL_LOCALES%\"}" \
|
||||
&& temp="${temp#\"}" \
|
||||
&& for i in ${temp}; do sed -i "/$i/s/^#//g" /etc/locale.gen; done \
|
||||
&& locale-gen \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# MySQL Client:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_MYSQL_CLIENT=false
|
||||
|
||||
RUN if [ ${INSTALL_MYSQL_CLIENT} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
if [ ${LARADOCK_PHP_VERSION} = "7.3" ]; then \
|
||||
apt-get -y install default-mysql-client \
|
||||
;else \
|
||||
apt-get -y install mysql-client \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ping:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_PING=false
|
||||
|
||||
RUN if [ ${INSTALL_PING} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install inetutils-ping \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# sshpass:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SSHPASS=false
|
||||
|
||||
RUN if [ ${INSTALL_SSHPASS} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install sshpass \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# FFMPEG:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_FFMPEG=false
|
||||
|
||||
RUN if [ ${INSTALL_FFMPEG} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install ffmpeg \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Mailparse extension:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MAILPARSE=false
|
||||
|
||||
RUN if [ ${INSTALL_MAILPARSE} = true ]; then \
|
||||
# Install mailparse extension
|
||||
printf "\n" | pecl install -o -f mailparse \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable mailparse \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# CacheTool:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_CACHETOOL=false
|
||||
|
||||
RUN if [ ${INSTALL_CACHETOOL} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "7" ] && [ $(php -r "echo PHP_MINOR_VERSION;") -ge 1 ]; then \
|
||||
curl -sO http://gordalina.github.io/cachetool/downloads/cachetool.phar; \
|
||||
else \
|
||||
curl http://gordalina.github.io/cachetool/downloads/cachetool-3.2.1.phar -o cachetool.phar; \
|
||||
fi && \
|
||||
chmod +x cachetool.phar && \
|
||||
mv cachetool.phar /usr/local/bin/cachetool \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
RUN set -xe; php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -471,7 +820,20 @@ RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
# Configure non-root user.
|
||||
ARG PUID=1000
|
||||
ENV PUID ${PUID}
|
||||
ARG PGID=1000
|
||||
ENV PGID ${PGID}
|
||||
|
||||
RUN groupmod -o -g ${PGID} www-data && \
|
||||
usermod -o -u ${PUID} -g www-data 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
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
; NOTE: The actual opcache.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini)
|
||||
|
||||
opcache.enable="1"
|
||||
opcache.memory_consumption="256"
|
||||
opcache.use_cwd="0"
|
||||
opcache.max_file_size="0"
|
||||
opcache.max_accelerated_files = 30000
|
||||
opcache.validate_timestamps="1"
|
||||
opcache.revalidate_freq="0"
|
||||
opcache.enable=1
|
||||
opcache.memory_consumption=256
|
||||
opcache.use_cwd=0
|
||||
opcache.max_file_size=0
|
||||
opcache.max_accelerated_files=30000
|
||||
opcache.validate_timestamps=1
|
||||
opcache.revalidate_freq=0
|
||||
|
1
php-fpm/phalcon.ini
Normal file
1
php-fpm/phalcon.ini
Normal file
@ -0,0 +1 @@
|
||||
extension=phalcon.so
|
1918
php-fpm/php7.3.ini
Normal file
1918
php-fpm/php7.3.ini
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user