Compare commits
604 Commits
Author | SHA1 | Date | |
---|---|---|---|
fc3355a9cc | |||
53ca88714c | |||
1d420a2507 | |||
c7aa535598 | |||
5edf3f398b | |||
f6c5aa1801 | |||
a09144f02b | |||
9e4dfa2a0c | |||
99f7e65c99 | |||
e0dc683d3f | |||
eb0c941313 | |||
d27f4368ee | |||
7430a34dd5 | |||
d5647295ca | |||
b1e346383b | |||
913abc54f9 | |||
53e8229313 | |||
36c78369d5 | |||
acac6eb229 | |||
04f071555c | |||
03ff791e17 | |||
7c4f6dd7a9 | |||
f44a8e0ca0 | |||
ce7a29c662 | |||
bbff18c631 | |||
e07c128063 | |||
163eb1f73a | |||
30c8afafa2 | |||
3e771dbcfc | |||
a1bda23cd9 | |||
e6d866b8a6 | |||
35ffd02b44 | |||
d03ead34a2 | |||
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 | |||
f3c934222f | |||
a90865d67c | |||
a0a5c85a54 | |||
a807caa30a | |||
bc27e96337 | |||
11912055ec | |||
3509473b89 | |||
5521f71428 | |||
339d47f303 | |||
600a6154b4 | |||
4673ba7b31 | |||
154249a08f | |||
5bffd43b55 | |||
0e9d044c6f | |||
21d203da73 | |||
a3cbfd71f5 | |||
33234fd3b5 | |||
f47e40b262 | |||
7199ae5a34 | |||
6caa4c5fb9 | |||
3fceba0709 | |||
75b3fa499e | |||
999118b674 | |||
4b2c440146 | |||
a4d3f9bd77 | |||
65444d39b6 | |||
5016e88515 | |||
e8eb97b398 | |||
66c61d9a72 | |||
d8f95bac2a | |||
ad316bab50 | |||
6e43dd804d | |||
ba1a83b40b | |||
34ad8acdbf | |||
d5ea58eb6e | |||
567756475d | |||
ad21cd225f | |||
f2f5aeabd6 | |||
0f4a417f4e | |||
42a960338b | |||
2e75c25c7f | |||
beec32498e | |||
573b8e0afd | |||
409f91662f | |||
185ba60a09 | |||
a03ce23bf5 | |||
fc8736773c | |||
d5efd5309e | |||
da3a7226bd | |||
cc20ac2421 | |||
402383e7b7 | |||
9250326664 | |||
51d253db21 | |||
69de0668e9 | |||
472df4d194 | |||
62b716f469 | |||
10ba847415 | |||
a0595491a2 | |||
7c88c33b29 | |||
808bd72d13 | |||
07410e80cf | |||
d1170f51c8 | |||
8158b6f50e | |||
97adef735a | |||
6e6284d00f | |||
890faa2f3c | |||
f6f37ec020 | |||
20464d1bd2 | |||
a5813de5bf | |||
aee1adb0a1 | |||
dd322a0e71 | |||
99c2c846ff | |||
d08177d2c2 | |||
b990af3353 | |||
b2c09f6b15 | |||
9e5fdda294 | |||
77bea30cb0 | |||
dac336e6a1 | |||
d142500216 | |||
ad1509dd62 | |||
9ab84c5174 | |||
6b6e2d5f86 | |||
3ad17eca0a | |||
f54e6baf02 | |||
59f3b574da | |||
0c41fceae1 | |||
76b95752bf | |||
101986c76f | |||
add78a19f4 | |||
a0c5ef75d2 | |||
06353031ac | |||
1f193a5310 | |||
b45bf46436 | |||
0586247e3f | |||
0f8891b56c | |||
ebeb9e43f3 | |||
52afd9ef62 | |||
31a4e29c81 | |||
067218e010 | |||
5ed3526e17 | |||
54e6d66c83 | |||
8a090f3e46 | |||
1e5d787a7e | |||
83140d9939 | |||
9b85ac6c2b | |||
871a9d032a | |||
805d7f94e8 | |||
c84a57cd13 | |||
e6817288f8 | |||
cd849dda21 | |||
21a5d5bf98 | |||
2ab11bf1af | |||
141d2dbe7f | |||
4d384c0a67 | |||
245515b41d | |||
9a9d30f173 | |||
99c7758799 | |||
164069c256 | |||
5773d270ca | |||
f810962d84 | |||
f5f23bed1b | |||
e694254fb0 | |||
c34d2d12b3 | |||
349be8b30e | |||
436e9e5a66 | |||
b445479c99 | |||
70e10a4953 | |||
1ab5b405a9 | |||
91784cbf8a | |||
415a6159f6 | |||
2cf368e2cc | |||
f08c3bda4d | |||
c5c4d19476 | |||
40796651f6 | |||
188a7d7624 | |||
3f1f60da91 | |||
21e3ef8c47 | |||
7876aa2360 | |||
dee66c2495 | |||
ce8bdb91cf | |||
f90a81ef8b | |||
23b8239cfa | |||
b7b7690bbe | |||
e054b622f3 | |||
c4aef8e901 | |||
47dc7c1eb9 | |||
8fc33f5bb9 | |||
8607f670c1 | |||
04105b912d | |||
a797d67f14 | |||
4169a9b357 | |||
00e43655bd | |||
8d0bd8505c | |||
dc5474d31b | |||
ab9f5aba6e | |||
cbd0f1de79 | |||
2a2d78e249 | |||
9b328cce1f | |||
43ba898df3 | |||
3b0f271782 | |||
327e79f902 | |||
e546c9c190 | |||
880c3684d7 | |||
27ec06bbf0 | |||
6fe3dc75b3 | |||
dd751c56b7 | |||
91d202dff4 | |||
ca376935e1 | |||
227bc37376 | |||
74ca3b82a1 | |||
d23c553313 | |||
16f88029e0 | |||
74217478e0 | |||
13f55ef796 | |||
715c2176b8 | |||
43bf67b77e | |||
4b5a1ef628 | |||
198c3906b2 | |||
9bd34ed665 | |||
76da02e779 | |||
a52a944003 | |||
4cffb2fc99 | |||
92dda4695c | |||
c42e039945 | |||
72d550e6e5 | |||
e1c3524f43 | |||
91131f0963 | |||
545d50105c | |||
61d3874736 | |||
03c7611010 | |||
48de39b1a1 | |||
2ca9d3c5c6 | |||
3b219d2974 | |||
e77480b69f | |||
b7f89e6b00 | |||
acbe7160d9 | |||
f53565f2a6 | |||
dfff0b2fa0 | |||
82a2681eed | |||
e792aa654e | |||
87e1bdeb92 | |||
f05fdc71d5 | |||
6e96b1c6f9 | |||
fad7c11d53 | |||
639b14445f | |||
2a74f1433c | |||
0b902e3e96 | |||
f27b3aa4be | |||
722f7d09c0 | |||
0077de28a1 | |||
d098f1f6ad | |||
4ea9cd0663 | |||
9de6d9b9e1 | |||
04b4af829f | |||
bf2dbca286 | |||
0b7cb81f47 | |||
368c85dc61 | |||
ae7dda9ef2 | |||
7e88fb56f1 | |||
807443455a | |||
c44338e370 | |||
b4ded4f21b | |||
3e5a6029ab | |||
ee205d1198 | |||
0fcb8b43cc | |||
7bd22f015e | |||
07acf291fa | |||
cfe6e254a7 | |||
5efda6714b | |||
a83477b439 | |||
00f8c3407e | |||
0aaa2c742e | |||
4ada536d68 | |||
222febadb5 | |||
0445d76d11 | |||
7fc3a9cb7a | |||
b738253a26 | |||
6e6a658a79 | |||
4bc6526c3c | |||
d4f9b04467 | |||
b9e982c112 | |||
ad3698670b | |||
71cc109334 | |||
0d804cd29a | |||
3fcebd49e7 | |||
86eccdb962 | |||
0f46659172 | |||
017fcf188b | |||
63c69231f7 | |||
4730ed1b78 | |||
c21c6760ac | |||
1c194f5c87 | |||
81b34a72eb | |||
fde265ed6a | |||
64029d9270 | |||
407c08017d | |||
2156139b5a | |||
e1ccd84c16 | |||
d139b6bc2e | |||
5e10abd536 | |||
c6a8500c44 | |||
b981168111 | |||
cd1c9c0d44 | |||
8e32b93264 | |||
a2ae141a75 | |||
f22ceb71ab | |||
6ea86fbce3 | |||
dec08ec2b1 | |||
98fba83331 | |||
694b39ddf4 | |||
d0167475ba | |||
3bdab382ea | |||
80f6e8b60c | |||
ba61566f28 | |||
9ae10d32ce | |||
cf136f891b | |||
59dff53176 | |||
34267ffc4d | |||
57918b69a7 | |||
c11658559a | |||
47c74d1334 | |||
e779bf96ab | |||
06ce5ca222 | |||
c06c28aa04 | |||
c1e80e3af4 | |||
a7c9232193 | |||
265bc13917 | |||
8d410e9c82 | |||
f56a585ab2 | |||
9b8d4806a8 | |||
73b95357ac | |||
65a8bbc6a4 | |||
7c1f3060bf | |||
45e1ecf3c0 | |||
c6b1eb016d | |||
c5005f54f7 | |||
cf5b1af31a | |||
8dea201b68 | |||
50a3e24db8 | |||
9835a20863 | |||
5bcb99dfb9 | |||
9877f0453e | |||
ff20333d8c | |||
a99281cda8 | |||
1342b696ea | |||
2fc0f3cb2e | |||
6c3b18340f | |||
de247a074e | |||
176dd74906 | |||
819b1eb3bc | |||
05dd1b0339 | |||
f0401f5047 | |||
be13fdba7f | |||
bd0f04bd80 | |||
f7ac8cf862 | |||
b47963c80d | |||
35183eff42 | |||
c5ccc2f4ff | |||
34ef36cd7e | |||
7138d7a13c | |||
c7695ca175 | |||
6f3c41b84d | |||
46852bc31b | |||
5a21337cc5 | |||
e2091cd309 | |||
1ead8aa060 | |||
7e393efbb6 | |||
beecbe758b | |||
1b1f6b7048 | |||
fd5bb38a8c | |||
5835d185f2 | |||
4fc85d499d | |||
23ee4f6679 | |||
4e486280f4 | |||
9e807e39ee | |||
894b0197e0 | |||
c2c30bfd0f | |||
152c896515 | |||
4682aff622 | |||
a31114955a | |||
f4ede08b9c | |||
eac717fb21 | |||
c05c675408 | |||
60998ed1e4 | |||
05879bdda2 | |||
70a7bdca19 | |||
a71d5a8548 | |||
9fa3733622 | |||
b8e657b68f | |||
8aaa074af2 | |||
3005dde240 | |||
b3922995e1 | |||
49e48edefd | |||
182386b514 | |||
bea122a1fd | |||
7fb00658cf | |||
ee03bb607f | |||
9abd7c30f2 | |||
6a4509c0ca | |||
7f5d9d07d1 | |||
a5c505bf28 | |||
427088e11b | |||
3467821c28 | |||
f9553dff4c | |||
8e556008d8 | |||
17ea7b313f | |||
dff0e82ddb | |||
1702a5cc09 | |||
f15bc8e6b7 | |||
903c77421c | |||
2bedfdd9d7 | |||
525c4313a0 | |||
01c358b6bc | |||
a0685705c0 | |||
98b2b2e47b | |||
eeee14338f | |||
a2edf57e3b | |||
881cbfb8c2 | |||
508e9ebd9e | |||
6cff904eba | |||
04770bc4ec | |||
1281490c39 | |||
3f7988060e | |||
615cb72eab | |||
e036e69da2 | |||
8989c73711 | |||
61144ab2d9 | |||
221edf4bb2 | |||
ca9c07eb76 | |||
8f7b1b7e9f | |||
3cc917c9de | |||
5a073ae841 | |||
8c1e71eca5 | |||
c0e823b8d2 | |||
8cb4c8d62e | |||
f765afd4c2 | |||
6ea49a0683 | |||
998aa1365e | |||
f2420ec52c | |||
fe254e86e3 | |||
53b7f75500 | |||
4150f0b140 | |||
d340b6e60f | |||
e7357eab83 | |||
110aa91c59 | |||
e5aef41dd2 | |||
ae048e6c66 | |||
a5f3a92eb4 | |||
655b9a1526 | |||
7ac37ecd35 | |||
792789e479 | |||
801ccd47d2 | |||
5c5f94600a | |||
b2e372054f | |||
0a23d53ee5 | |||
f6552aca97 | |||
e9806d9bca | |||
e56801846b | |||
f9e6acd4e1 | |||
b61ff4f484 | |||
8485add87a | |||
d3fb967f0f | |||
a36620c3bd | |||
cddc934e1e | |||
53b3ad0f7e | |||
fdcf9117ac | |||
f800a3221a | |||
a1d3eeb7e6 | |||
b2f7348552 | |||
ebeddcba23 | |||
dba37307b5 | |||
2af5b2ff49 | |||
93d5b318fe | |||
9ce470e14e | |||
38fb49bccc | |||
08896f9fb6 | |||
dcab211b07 | |||
76001daf71 | |||
30b626d43e | |||
586a225c11 | |||
c099a51d52 | |||
245ddf3441 | |||
0192346cf2 | |||
e4f4de47e7 | |||
69ccd74d2e | |||
a3c66fdecf | |||
9b8eee6a98 | |||
668acd66c1 | |||
b25215684b | |||
8e84fbbec2 | |||
1e650d8643 | |||
4977b0f92f | |||
2082659fb1 | |||
1fe2df73e4 | |||
05c7f9186a | |||
3801973b15 | |||
6d89424e91 | |||
b1c1e6e187 | |||
972bdd90a3 | |||
2af40b0ba1 | |||
5c0b8316b1 | |||
004e4354aa | |||
d99cf73bf0 | |||
a365425c73 | |||
c836500488 | |||
318ca3f81c | |||
82219ededb | |||
d6ff224b0d | |||
b1144bba7e | |||
a590ed78ce | |||
f852789720 | |||
bf691337f1 | |||
eefd04dbfc | |||
a657dce572 | |||
d616545268 | |||
57ecd6e515 | |||
025a339062 | |||
5b5ba53112 | |||
bd87a26db1 | |||
c0283da6ee | |||
e372d624a6 | |||
db6c6e7e0f |
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
##### I completed the 3 steps below:
|
##### I completed the 3 steps below:
|
||||||
|
|
||||||
- [] I've read the [Contribution Guide](http://laradock.io/contributing).
|
- [ ] I've read the [Contribution Guide](http://laradock.io/contributing).
|
||||||
- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
||||||
- [] I enjoyed my time contributing and making developer's life easier :)
|
- [ ] I enjoyed my time contributing and making developer's life easier :)
|
||||||
|
10
.github/README-zh.md
vendored
10
.github/README-zh.md
vendored
@ -669,19 +669,19 @@ PHP-CLI 安装在 Workspace 容器,改变 PHP-CLI 版本你需要编辑 `works
|
|||||||
<a name="Use-custom-Domain"></a>
|
<a name="Use-custom-Domain"></a>
|
||||||
### 使用自定义域名 (替换 Docker 的 IP)
|
### 使用自定义域名 (替换 Docker 的 IP)
|
||||||
|
|
||||||
假定你的自定义域名是 `laravel.dev`
|
假定你的自定义域名是 `laravel.test`
|
||||||
|
|
||||||
1 - 打开 `/etc/hosts` 文件添加以下内容,映射你的 localhost 地址 `127.0.0.1` 为 `laravel.dev` 域名
|
1 - 打开 `/etc/hosts` 文件添加以下内容,映射你的 localhost 地址 `127.0.0.1` 为 `laravel.test` 域名
|
||||||
```bash
|
```bash
|
||||||
127.0.0.1 laravel.dev
|
127.0.0.1 laravel.test
|
||||||
```
|
```
|
||||||
|
|
||||||
2 - 打开你的浏览器访问 `{http://laravel.dev}`
|
2 - 打开你的浏览器访问 `{http://laravel.test}`
|
||||||
|
|
||||||
你可以在 nginx 配置文件自定义服务器名称,如下:
|
你可以在 nginx 配置文件自定义服务器名称,如下:
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
server_name laravel.dev;
|
server_name laravel.test;
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="Enable-Global-Composer-Build-Install"></a>
|
<a name="Enable-Global-Composer-Build-Install"></a>
|
||||||
|
80
.github/README.md
vendored
80
.github/README.md
vendored
@ -1,21 +1,55 @@
|
|||||||

|
<p align="center">
|
||||||
|
<img src="/.github/home-page-images/laradock-logo.jpg?raw=true" alt="Laradock Logo"/>
|
||||||
|
</p>
|
||||||
|
|
||||||
[](https://travis-ci.org/laradock/laradock) [](https://github.com/laradock/laradock/issues) [](https://github.com/laradock/laradock/network) [](https://github.com/laradock/laradock/stargazers) [](https://raw.githubusercontent.com/laradock/laradock/master/LICENSE)
|
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>
|
||||||
|
|
||||||
> Use Docker first and learn about it later.
|
<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>
|
||||||
|
|
||||||
A Docker PHP development environment that facilitates running **PHP** Apps on **Docker**.
|
<h4 align="center" style="color:#7d58c2">Use Docker First And Learn About It Later</h4>
|
||||||
|
|
||||||
[](http://zalt.me)
|
<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>
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
[**Full Documentation Here**](http://laradock.io)
|
---
|
||||||
|
|
||||||
## Credits
|
<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>
|
||||||
|
|
||||||
**Maintainers:**
|
|
||||||
|
|
||||||
|
## 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)
|
- [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)
|
- [Bo-Yi Wu](https://github.com/appleboy) @appleboy | [Twitter](https://twitter.com/appleboy)
|
||||||
- [Philippe Trépanier](https://github.com/philtrep) @philtrep
|
- [Philippe Trépanier](https://github.com/philtrep) @philtrep
|
||||||
@ -27,8 +61,32 @@ A Docker PHP development environment that facilitates running **PHP** Apps on **
|
|||||||
- [Yu-Lung Shao (Allen)](https://github.com/bestlong) @bestlong
|
- [Yu-Lung Shao (Allen)](https://github.com/bestlong) @bestlong
|
||||||
- [Milan Urukalo](https://github.com/urukalo) @urukalo
|
- [Milan Urukalo](https://github.com/urukalo) @urukalo
|
||||||
- [Vince Chu](https://github.com/vwchu) @vwchu
|
- [Vince Chu](https://github.com/vwchu) @vwchu
|
||||||
- Join Us.
|
- [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
|
## License
|
||||||
|
|
||||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT)
|
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE)
|
||||||
|
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 |
10
.gitignore
vendored
10
.gitignore
vendored
@ -3,4 +3,12 @@
|
|||||||
/data
|
/data
|
||||||
.env
|
.env
|
||||||
/.project
|
/.project
|
||||||
.docker-sync
|
.docker-sync
|
||||||
|
/jenkins/jenkins_home
|
||||||
|
|
||||||
|
/logstash/pipeline/*.conf
|
||||||
|
/logstash/config/pipelines.yml
|
||||||
|
|
||||||
|
/nginx/ssl/*.crt
|
||||||
|
/nginx/ssl/*.key
|
||||||
|
/nginx/ssl/*.csr
|
||||||
|
62
.gitlab-ci.yml
Normal file
62
.gitlab-ci.yml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# image: docker:latest
|
||||||
|
# services:
|
||||||
|
# - docker:dind
|
||||||
|
image: jonaskello/docker-and-compose:1.12.1-1.8.0
|
||||||
|
services:
|
||||||
|
- docker:1.12.1-dind
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- docker info
|
||||||
|
- docker-compose version
|
||||||
|
- cp env-example .env
|
||||||
|
- sed -i -- "s/=false/=true/g" .env
|
||||||
|
- cat .env
|
||||||
|
- env | sort
|
||||||
|
|
||||||
|
build:5.6:php-fpm:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "5.6"
|
||||||
|
script:
|
||||||
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
|
build:7.0:php-fpm:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.0"
|
||||||
|
script:
|
||||||
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
|
build:7.1:php-fpm:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.1"
|
||||||
|
script:
|
||||||
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
|
build:7.2:php-fpm:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.2"
|
||||||
|
script:
|
||||||
|
- docker-compose build php-fpm
|
||||||
|
|
||||||
|
build:5.6:workspace:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "5.6"
|
||||||
|
script:
|
||||||
|
- docker-compose build workspace
|
||||||
|
|
||||||
|
build:7.0:workspace:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.0"
|
||||||
|
script:
|
||||||
|
- docker-compose build workspace
|
||||||
|
|
||||||
|
build:7.1:workspace:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.1"
|
||||||
|
script:
|
||||||
|
- docker-compose build workspace
|
||||||
|
|
||||||
|
build:7.2:workspace:
|
||||||
|
variables:
|
||||||
|
PHP_VERSION: "7.2"
|
||||||
|
script:
|
||||||
|
- docker-compose build workspace
|
59
.travis.yml
59
.travis.yml
@ -4,41 +4,34 @@ services:
|
|||||||
- docker
|
- docker
|
||||||
|
|
||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
- PHP_VERSION=56 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis"
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis"
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE="applications blackfire minio percona nginx caddy apache2 mysql mariadb phpmyadmin postgres postgres-postgis pgadmin neo4j mongo redis"
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=workspace
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=workspace
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=workspace
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=php-fpm
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=php-fpm
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=php-fpm
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE="php-worker hhvm"
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE="php-worker hhvm"
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE="php-worker hhvm"
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=mssql
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=mssql
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=mssql
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=rethinkdb
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=rethinkdb
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=rethinkdb
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE=aerospike
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE=aerospike
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE=aerospike
|
|
||||||
|
|
||||||
- PHP_VERSION=56 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
|
|
||||||
- PHP_VERSION=70 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
|
|
||||||
- PHP_VERSION=71 BUILD_SERVICE="memcached beanstalkd beanstalkd-console rabbitmq adminer elasticsearch certbot mailhog selenium jenkins proxy proxy2 balancer"
|
|
||||||
|
|
||||||
- HUGO_VERSION=0.20.2
|
- HUGO_VERSION=0.20.2
|
||||||
|
|
||||||
|
- PHP_VERSION=5.6 BUILD_SERVICE=workspace
|
||||||
|
- PHP_VERSION=7.0 BUILD_SERVICE=workspace
|
||||||
|
- PHP_VERSION=7.1 BUILD_SERVICE=workspace
|
||||||
|
- PHP_VERSION=7.2 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=hhvm BUILD_SERVICE=hhvm
|
||||||
|
|
||||||
|
# - PHP_VERSION=5.6 BUILD_SERVICE=php-worker
|
||||||
|
- 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=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="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="kibana grafana laravel-echo-server"
|
||||||
|
# - PHP_VERSION=NA BUILD_SERVICE="aws"
|
||||||
|
|
||||||
# Installing a newer Docker version
|
# Installing a newer Docker version
|
||||||
before_install:
|
before_install:
|
||||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
baseurl = "http://laradock.io/"
|
baseurl = "https://laradock.io/"
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
publishDir = "../docs"
|
publishDir = "../docs"
|
||||||
title = "Laradock"
|
title = "Laradock"
|
||||||
|
@ -13,8 +13,8 @@ If you have questions about how to use Laradock, please direct your questions to
|
|||||||
|
|
||||||
## Found an Issue
|
## Found an Issue
|
||||||
|
|
||||||
If have an issue or you found a typo in the documentation, you can help us by
|
If you have an issue or you found a typo in the documentation, you can help us by
|
||||||
opnening an [Issue](https://github.com/laradock/laradock/issues).
|
opening an [Issue](https://github.com/laradock/laradock/issues).
|
||||||
|
|
||||||
**Steps to do before opening an Issue:**
|
**Steps to do before opening an Issue:**
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ opnening an [Issue](https://github.com/laradock/laradock/issues).
|
|||||||
|
|
||||||
If your issue appears to be a bug, and hasn't been reported, then open a new issue.
|
If your issue appears to be a bug, and hasn't been reported, then open a new issue.
|
||||||
|
|
||||||
*This Help us to maximize the effort we can spend fixing issues and adding new
|
*This helps us maximize the effort we can spend fixing issues and adding new
|
||||||
features, by not reporting duplicate issues.*
|
features, by not reporting duplicate issues.*
|
||||||
|
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
|||||||
|
|
||||||
## Support new Software (Add new Container)
|
## Support new Software (Add new Container)
|
||||||
|
|
||||||
* Forke the repo and clone the code.
|
* Fork the repo and clone the code.
|
||||||
|
|
||||||
* Create folder as the software name (example: `mysql` - `nginx`).
|
* Create folder as the software name (example: `mysql` - `nginx`).
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
|||||||
|
|
||||||
* Add the environment variables to the `env-example` if you have any.
|
* Add the environment variables to the `env-example` if you have any.
|
||||||
|
|
||||||
* **MOST IMPORTANTLY** updated the `Documentation`, add as much information.
|
* **MOST IMPORTANTLY** update the `Documentation`, add as much information.
|
||||||
|
|
||||||
* Submit a Pull Request, to the `master` branch.
|
* Submit a Pull Request, to the `master` branch.
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
|||||||
|
|
||||||
## Edit supported Software (Edit a Container)
|
## Edit supported Software (Edit a Container)
|
||||||
|
|
||||||
* Forke the repo and clone the code.
|
* Fork the repo and clone the code.
|
||||||
|
|
||||||
* Open the software (container) folder (example: `mysql` - `nginx`).
|
* Open the software (container) folder (example: `mysql` - `nginx`).
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ To update the sidebar or add a new section to it, you can edit this `DOCUMENTATI
|
|||||||
|
|
||||||
* Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source..
|
* Search for the image in the [Docker Hub](https://hub.docker.com/search/) and find the source..
|
||||||
|
|
||||||
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other orgnizations.*
|
*Most of the image in Laradock are offical images, these projects live in other repositories and maintainer by other organizations.*
|
||||||
|
|
||||||
**Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine.
|
**Note:** Laradock has two base images for (`Workspace` and `php-fpm`, mainly made to speed up the build time on your machine.
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ weight: 2
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- [Git](https://git-scm.com/downloads)
|
- [Git](https://git-scm.com/downloads)
|
||||||
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
|
|||||||
cp env-example .env
|
cp env-example .env
|
||||||
```
|
```
|
||||||
|
|
||||||
At the top, change the `APPLICATION` variable to your project path.
|
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
|
||||||
|
|
||||||
```
|
```
|
||||||
APPLICATION=../project-z/
|
APP_CODE_PATH_HOST=../project-z/
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure to replace `project-z` with your project folder name.
|
Make sure to replace `project-z` with your project folder name.
|
||||||
@ -94,7 +94,7 @@ Make sure to replace `project-z` with your project folder name.
|
|||||||
|
|
||||||
<a name="B"></a>
|
<a name="B"></a>
|
||||||
### B) Setup for Multiple Projects:
|
### B) Setup for Multiple Projects:
|
||||||
> (Follow these steps if you want a single Docker environment for all your project)
|
> (Follow these steps if you want a single Docker environment for all your projects)
|
||||||
|
|
||||||
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
|
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
|
||||||
|
|
||||||
@ -112,18 +112,20 @@ Your folder structure should look like this:
|
|||||||
|
|
||||||
2 - Go to `nginx/sites` and create config files to point to different project directory when visiting different domains.
|
2 - Go to `nginx/sites` and create config files to point to different project directory when visiting different domains.
|
||||||
|
|
||||||
Laradock by default includes `project-1.conf` and `project-2.conf` as working samples.
|
Laradock by default includes `app.conf.example`, `laravel.conf.example` and `symfony.conf.example` as working samples.
|
||||||
|
|
||||||
3 - change the default names `project-n`:
|
3 - change the default names `*.conf`:
|
||||||
|
|
||||||
You can rename the config files, project folders and domains as you like, just make sure the `root` in the config files, is pointing to the correct project folder name.
|
You can rename the config files, project folders and domains as you like, just make sure the `root` in the config files, is pointing to the correct project folder name.
|
||||||
|
|
||||||
4 - Add the domains to the **hosts** files.
|
4 - Add the domains to the **hosts** files.
|
||||||
|
|
||||||
```
|
```
|
||||||
127.0.0.1 project-1.dev
|
127.0.0.1 project-1.test
|
||||||
127.0.0.1 project-2.dev
|
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.**
|
> **Now jump to the [Usage](#Usage) section.**
|
||||||
|
|
||||||
@ -141,7 +143,7 @@ You can rename the config files, project folders and domains as you like, just m
|
|||||||
If you are using **Docker Toolbox** (VM), do one of the following:
|
If you are using **Docker Toolbox** (VM), do one of the following:
|
||||||
|
|
||||||
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](/documentation/#upgrading-laradock)
|
- Upgrade to Docker [Native](https://www.docker.com/products/docker) for Mac/Windows (Recommended). Check out [Upgrading Laradock](/documentation/#upgrading-laradock)
|
||||||
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/Laradock-ToolBox) branch. *(outdated)*
|
- Use Laradock v3.\*. Visit the [Laradock-ToolBox](https://github.com/laradock/laradock/tree/LaraDock-ToolBox) branch. *(outdated)*
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@ -159,10 +161,13 @@ We recommend using a Docker version which is newer than 1.13.
|
|||||||
cp env-example .env
|
cp env-example .env
|
||||||
```
|
```
|
||||||
|
|
||||||
You can edit the `.env` file to chose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are been used.
|
You can edit the `.env` file to choose which software's you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables are 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 `;`.
|
||||||
|
|
||||||
2 - Build the enviroment and run it using `docker-compose`
|
By default the containers that will be created have the current directory name as suffix (e.g. `laradock_workspace_1`). This can cause mixture of data inside the container volumes if you use laradock in multiple projects. In this case, either read the guide for [multiple projects](#B) or change the variable `COMPOSE_PROJECT_NAME` to something unique like your project name.
|
||||||
|
|
||||||
|
2 - Build the environment and run it using `docker-compose`
|
||||||
|
|
||||||
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
|
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
|
||||||
|
|
||||||
@ -170,10 +175,10 @@ In this example we'll see how to run NGINX (web server) and MySQL (database engi
|
|||||||
docker-compose up -d nginx mysql
|
docker-compose up -d nginx mysql
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note**: The `workspace` and `php-fpm` will run automatically in most of the cases, so no need to specify them in the `up` command. If you couldn't find them running then you need specify them as follow: `docker-compose up -d nginx php-fpm mysql workspace`.
|
**Note**: All the web server containers `nginx`, `apache` ..etc depends on `php-fpm`, which means if you run any of them, they will automatically launch the `php-fpm` container for you, so no need to explicitly specify it in the `up` command. If you have to do so, you may need to run them as follows: `docker-compose up -d nginx php-fpm mysql`.
|
||||||
|
|
||||||
|
|
||||||
You can select your own combination of containers form [this list](http://laradock.io/introduction/#supported-software-images).
|
You can select your own combination of containers from [this list](http://laradock.io/introduction/#supported-software-images).
|
||||||
|
|
||||||
*(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).*
|
*(Please note that sometimes we forget to update the docs, so check the `docker-compose.yml` file to see an updated list of all available containers).*
|
||||||
|
|
||||||
@ -200,7 +205,7 @@ docker-compose exec --user=laradock workspace bash
|
|||||||
*You can change the PUID (User id) and PGID (group id) variables from the `.env` file)*
|
*You can change the PUID (User id) and PGID (group id) variables from the `.env` file)*
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
4 - Update your project configurations to use the database host
|
4 - Update your project configuration to use the database host
|
||||||
|
|
||||||
Open your PHP project's `.env` file or whichever configuration file you are reading from, and set the database host `DB_HOST` to `mysql`:
|
Open your PHP project's `.env` file or whichever configuration file you are reading from, and set the database host `DB_HOST` to `mysql`:
|
||||||
|
|
||||||
@ -211,4 +216,4 @@ DB_HOST=mysql
|
|||||||
*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
|
*If you want to install Laravel as PHP project, see [How to Install Laravel in a Docker Container](#Install-Laravel).*
|
||||||
|
|
||||||
<br>
|
<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.dev/` and `http://project-2.dev/`.
|
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/`.
|
||||||
|
@ -8,6 +8,7 @@ weight: 4
|
|||||||
|
|
||||||
* [Production Setup on Digital Ocean](#Digital-Ocean)
|
* [Production Setup on Digital Ocean](#Digital-Ocean)
|
||||||
* [PHPStorm XDebug Setup](#PHPStorm-Debugging)
|
* [PHPStorm XDebug Setup](#PHPStorm-Debugging)
|
||||||
|
* [Running Laravel Dusk Test](#Laravel-Dusk)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -196,7 +197,7 @@ This is needed Prior to Creating Let's Encypt
|
|||||||
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
||||||
|
|
||||||
```
|
```
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose up caddy
|
$root@server:~/laravel/laradock# docker-compose up caddy
|
||||||
```
|
```
|
||||||
|
|
||||||
You'll be prompt here to enter your email... you may enter it or not
|
You'll be prompt here to enter your email... you may enter it or not
|
||||||
@ -217,8 +218,8 @@ After it finishes, press `Ctrl` + `C` to exit.
|
|||||||
## Stop All Containers and ReRun Caddy and Other Containers on Background
|
## Stop All Containers and ReRun Caddy and Other Containers on Background
|
||||||
|
|
||||||
```
|
```
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose down
|
$root@server:~/laravel/laradock# docker-compose down
|
||||||
$root@server:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
|
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
|
||||||
```
|
```
|
||||||
|
|
||||||
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||||
@ -326,6 +327,7 @@ Set the following variables:
|
|||||||
- `laradock/php-fpm/xdebug.ini`
|
- `laradock/php-fpm/xdebug.ini`
|
||||||
|
|
||||||
Set the following variables:
|
Set the following variables:
|
||||||
|
|
||||||
```
|
```
|
||||||
xdebug.remote_autostart=1
|
xdebug.remote_autostart=1
|
||||||
xdebug.remote_enable=1
|
xdebug.remote_enable=1
|
||||||
@ -336,34 +338,39 @@ xdebug.cli_color=1
|
|||||||
|
|
||||||
<a name="InstallCleanHouse"></a>
|
<a name="InstallCleanHouse"></a>
|
||||||
### Need to clean house first?
|
### Need to clean house first?
|
||||||
|
|
||||||
Make sure you are starting with a clean state. For example, do you have other Laradock containers and images?
|
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.
|
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).
|
- 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 {}`
|
`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}`
|
||||||
|
|
||||||
- Delete all images containing `laradock`.
|
- Delete all images containing `laradock`.
|
||||||
|
|
||||||
`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}`
|
`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:** 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:
|
**Note:** Some may fail with:
|
||||||
`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images`
|
`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.
|
- I added this to my `.bashrc` to remove orphaned images.
|
||||||
```
|
|
||||||
dclean() {
|
|
||||||
processes=`docker ps -q -f status=exited`
|
|
||||||
if [ -n "$processes" ]; thend
|
|
||||||
docker rm $processes
|
|
||||||
fi
|
|
||||||
|
|
||||||
images=`docker images -q -f dangling=true`
|
```
|
||||||
if [ -n "$images" ]; then
|
dclean() {
|
||||||
docker rmi $images
|
processes=`docker ps -q -f status=exited`
|
||||||
fi
|
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:
|
- 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* containers
|
||||||
# remove laravel_* images
|
# remove laravel_* images
|
||||||
@ -406,14 +413,14 @@ laradock_php-fpm_1 php-fpm Up 9000/tcp
|
|||||||
laradock_volumes_data_1 true Exit 0
|
laradock_volumes_data_1 true Exit 0
|
||||||
laradock_volumes_source_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
|
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
<a name="enablePhpXdebug"></a>
|
<a name="enablePhpXdebug"></a>
|
||||||
## Enable xDebug on php-fpm
|
## Enable xDebug on php-fpm
|
||||||
In a host terminal sitting in the laradock folder, run: `.php-fpm/xdebug status`
|
|
||||||
|
In a host terminal sitting in the laradock folder, run: `./php-fpm/xdebug status`
|
||||||
You should see something like the following:
|
You should see something like the following:
|
||||||
|
|
||||||
```
|
```
|
||||||
xDebug status
|
xDebug status
|
||||||
laradock_php-fpm_1
|
laradock_php-fpm_1
|
||||||
@ -422,7 +429,8 @@ Copyright (c) 1997-2016 The PHP Group
|
|||||||
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
||||||
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
||||||
```
|
```
|
||||||
Other commands include `.php-fpm/xdebug start | stop`.
|
|
||||||
|
Other commands include `./php-fpm/xdebug start | stop`.
|
||||||
|
|
||||||
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
|
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
|
||||||
`php-fpm` is started and listening for debug info on port 9000.
|
`php-fpm` is started and listening for debug info on port 9000.
|
||||||
@ -430,6 +438,7 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will
|
|||||||
|
|
||||||
<a name="InstallPHPStormConfigs"></a>
|
<a name="InstallPHPStormConfigs"></a>
|
||||||
## PHPStorm Settings
|
## PHPStorm Settings
|
||||||
|
|
||||||
- Here are some settings that are known to work:
|
- Here are some settings that are known to work:
|
||||||
- `Settings/BuildDeploymentConnection`
|
- `Settings/BuildDeploymentConnection`
|
||||||
- 
|
- 
|
||||||
@ -507,9 +516,9 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will
|
|||||||
<a name="UsagePHPStormDebugSite"></a>
|
<a name="UsagePHPStormDebugSite"></a>
|
||||||
### Debug WebSite
|
### Debug WebSite
|
||||||
- In case xDebug is disabled, from the `laradock` folder run:
|
- In case xDebug is disabled, from the `laradock` folder run:
|
||||||
`.php-fpm/xdebug start`.
|
`./php-fpm/xdebug start`.
|
||||||
- To switch xdebug off, run:
|
- To switch xdebug off, run:
|
||||||
`.php-fpm/xdebug stop`
|
`./php-fpm/xdebug stop`
|
||||||
|
|
||||||
- Start Remote Debugging
|
- Start Remote Debugging
|
||||||
- 
|
- 
|
||||||
@ -547,4 +556,330 @@ Assuming that you are in laradock folder, type:
|
|||||||
- 
|
- 
|
||||||
- 
|
- 
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<a name="Laravel-Dusk"></a>
|
||||||
|
# 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
|
||||||
|
|
||||||
|
- [Intro](#option1-dusk-intro)
|
||||||
|
- [Workspace Setup](#option1-workspace-setup)
|
||||||
|
- [Application Setup](#option1-application-setup)
|
||||||
|
- [Choose Chrome Driver Version (Optional)](#option1-choose-chrome-driver-version)
|
||||||
|
- [Run Dusk Tests](#option1-run-dusk-tests)
|
||||||
|
|
||||||
|
<a name="option1-dusk-intro"></a>
|
||||||
|
### 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
|
||||||
|
|
||||||
|
Update your .env with following entries:
|
||||||
|
|
||||||
|
```
|
||||||
|
...
|
||||||
|
# Install Laravel installer bin to setup demo app
|
||||||
|
WORKSPACE_INSTALL_LARAVEL_INSTALLER=true
|
||||||
|
...
|
||||||
|
# Install all the necessary dependencies for running Dusk tests
|
||||||
|
WORKSPACE_INSTALL_DUSK_DEPS=true
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Then run below to build your workspace.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose build workspace
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="option1-application-setup"></a>
|
||||||
|
### Application Setup
|
||||||
|
|
||||||
|
Run a `workspace` container and you will be inside the container at `/var/www` directory.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-compose run workspace bash
|
||||||
|
|
||||||
|
/var/www#> _
|
||||||
|
```
|
||||||
|
|
||||||
|
Create new Laravel application named `dusk-test` and install Laravel Dusk package.
|
||||||
|
|
||||||
|
```
|
||||||
|
/var/www> laravel new dusk-test
|
||||||
|
/var/www> cd dusk-test
|
||||||
|
/var/www/dusk-test> composer require --dev laravel/dusk
|
||||||
|
/var/www/dusk-test> php artisan dusk:install
|
||||||
|
```
|
||||||
|
|
||||||
|
Create `.env.dusk.local` by copying from `.env` file.
|
||||||
|
|
||||||
|
```
|
||||||
|
/var/www/dusk-test> cp .env .env.dusk.local
|
||||||
|
```
|
||||||
|
|
||||||
|
Update the `APP_URL` entry in `.env.dusk.local` to local Laravel server.
|
||||||
|
|
||||||
|
```
|
||||||
|
APP_URL=http://localhost:8000
|
||||||
|
```
|
||||||
|
|
||||||
|
You will need to run chromedriver with `headless` and `no-sandbox` flag. In Laravel Dusk 2.x it is
|
||||||
|
already set `headless` so you just need to add `no-sandbox` flag. If you on previous version 1.x,
|
||||||
|
you will need to update your `DustTestCase#driver` as shown below.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
<?php
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
abstract class DuskTestCase extends BaseTestCase
|
||||||
|
{
|
||||||
|
...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update chrome driver with below flags
|
||||||
|
*/
|
||||||
|
protected function driver()
|
||||||
|
{
|
||||||
|
$options = (new ChromeOptions)->addArguments([
|
||||||
|
'--disable-gpu',
|
||||||
|
'--headless',
|
||||||
|
'--no-sandbox'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return RemoteWebDriver::create(
|
||||||
|
'http://localhost:9515', DesiredCapabilities::chrome()->setCapability(
|
||||||
|
ChromeOptions::CAPABILITY, $options
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="option1-choose-chrome-driver-version"></a>
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<?php
|
||||||
|
|
||||||
|
...
|
||||||
|
abstract class DuskTestCase extends BaseTestCase
|
||||||
|
{
|
||||||
|
...
|
||||||
|
public static function prepare()
|
||||||
|
{
|
||||||
|
// Only add this line if you wish to use chrome driver installed in workspace container.
|
||||||
|
// You might want to read the file path from env file.
|
||||||
|
static::useChromedriver('/usr/local/bin/chromedriver');
|
||||||
|
|
||||||
|
static::startChromeDriver();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
For Laravel 1.x, you need to add `DuskTestCase#buildChromeProcess` method if you wish to go with option #2.
|
||||||
|
|
||||||
|
```
|
||||||
|
<?php
|
||||||
|
|
||||||
|
...
|
||||||
|
use Symfony\Component\Process\ProcessBuilder;
|
||||||
|
|
||||||
|
abstract class DuskTestCase extends BaseTestCase
|
||||||
|
{
|
||||||
|
...
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Only add this method if you wish to use chrome driver installed in workspace container
|
||||||
|
*/
|
||||||
|
protected static function buildChromeProcess()
|
||||||
|
{
|
||||||
|
return (new ProcessBuilder())
|
||||||
|
->setPrefix('chromedriver')
|
||||||
|
->getProcess()
|
||||||
|
->setEnv(static::chromeEnvironment());
|
||||||
|
}
|
||||||
|
|
||||||
|
...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="option1-run-dusk-tests"></a>
|
||||||
|
### Run Dusk Tests
|
||||||
|
|
||||||
|
Run local server in `workspace` container and run Dusk tests.
|
||||||
|
|
||||||
|
```
|
||||||
|
# alias to run Laravel server in the background (php artisan serve --quiet &)
|
||||||
|
/var/www/dusk-test> serve
|
||||||
|
# alias to run Dusk tests (php artisan dusk)
|
||||||
|
/var/www/dusk-test> dusk
|
||||||
|
|
||||||
|
PHPUnit 6.4.0 by Sebastian Bergmann and contributors.
|
||||||
|
|
||||||
|
. 1 / 1 (100%)
|
||||||
|
|
||||||
|
Time: 837 ms, Memory: 6.00MB
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="option2-dusk"></a>
|
||||||
|
## Option 2: With Selenium
|
||||||
|
|
||||||
|
- [Intro](#dusk-intro)
|
||||||
|
- [DNS Setup](#dns-setup)
|
||||||
|
- [Docker Compose Setup](#docker-compose)
|
||||||
|
- [Laravel Dusk Setup](#laravel-dusk-setup)
|
||||||
|
- [Running Laravel Dusk Tests](#running-tests)
|
||||||
|
|
||||||
|
<a name="dusk-intro"></a>
|
||||||
|
### 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,
|
||||||
|
it's only been tested on macOS. Feel free to create pull requests to update the guide
|
||||||
|
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
|
||||||
|
According to RFC-2606, only four TLDs are reserved for local testing[^1]:
|
||||||
|
|
||||||
|
- `.test`
|
||||||
|
- `.example`
|
||||||
|
- `.invalid`
|
||||||
|
- `.localhost`
|
||||||
|
|
||||||
|
A common TLD used for local development is `.dev`, but newer versions of Google
|
||||||
|
Chrome (such as the one bundled with the Selenium Docker image), will fail to
|
||||||
|
resolve that DNS as there will appear to be a name collision.
|
||||||
|
|
||||||
|
The recommended extension is `.test` for your Laravel web apps because you're
|
||||||
|
running tests. Using a DNS forwarder such as `dnsmasq` or by editing the `/etc/hosts`
|
||||||
|
file, configure the host to point to `localhost`.
|
||||||
|
|
||||||
|
For example, in your `/etc/hosts` file:
|
||||||
|
```
|
||||||
|
##
|
||||||
|
# Host Database
|
||||||
|
#
|
||||||
|
# localhost is used to configure the loopback interface
|
||||||
|
# when the system is booting. Do not change this entry.
|
||||||
|
##
|
||||||
|
127.0.0.1 localhost
|
||||||
|
255.255.255.255 broadcasthost
|
||||||
|
::1 localhost
|
||||||
|
127.0.0.1 myapp.test
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
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:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
...
|
||||||
|
selenium:
|
||||||
|
...
|
||||||
|
depends_on:
|
||||||
|
- nginx
|
||||||
|
links:
|
||||||
|
- nginx:<your_domain>
|
||||||
|
```
|
||||||
|
|
||||||
|
This allows network communication between the Nginx and Selenium containers
|
||||||
|
and it also ensures that when starting the Selenium container, the Nginx
|
||||||
|
container starts up first unless it's already running. This allows
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
installation of Laravel Dusk. The change you have to make deals with the URL the
|
||||||
|
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
|
||||||
|
```
|
||||||
|
...
|
||||||
|
USE_SELENIUM=true
|
||||||
|
```
|
||||||
|
|
||||||
|
#### DuskTestCase.php
|
||||||
|
```php
|
||||||
|
abstract class DuskTestCase extends BaseTestCase
|
||||||
|
{
|
||||||
|
...
|
||||||
|
protected function driver()
|
||||||
|
{
|
||||||
|
if (env('USE_SELENIUM', 'false') == 'true') {
|
||||||
|
return RemoteWebDriver::create(
|
||||||
|
'http://selenium:4444/wd/hub', DesiredCapabilities::chrome()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
return RemoteWebDriver::create(
|
||||||
|
'http://localhost:9515', DesiredCapabilities::chrome()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
<a name="running-tests"></a>
|
||||||
|
### 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:
|
||||||
|
```docker-compose exec --user=laradock workspace bash```
|
||||||
|
|
||||||
|
Once inside, you can change directory to your application and run:
|
||||||
|
|
||||||
|
```php artisan dusk```
|
||||||
|
|
||||||
|
One way to make this easier from your project is to create a helper script. Here's one such example:
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
LARADOCK_HOME="path/to/laradock"
|
||||||
|
|
||||||
|
pushd ${LARADOCK_HOME}
|
||||||
|
|
||||||
|
docker-compose exec --user=laradock workspace bash -c "cd my-project && php artisan dusk && exit"
|
||||||
|
```
|
||||||
|
|
||||||
|
This invokes the Dusk command from inside the workspace container but when the script completes
|
||||||
|
execution, it returns your session to your project directory.
|
||||||
|
|
||||||
|
[^1]: [Don't Use .dev for Development](https://iyware.com/dont-use-dev-for-development/)
|
||||||
|
@ -35,7 +35,7 @@ cp env-example .env
|
|||||||
3 - Run your containers:
|
3 - Run your containers:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker-compose up -d nginx mysql redis beanstalkd
|
docker-compose up -d nginx mysql phpmyadmin redis workspace
|
||||||
```
|
```
|
||||||
|
|
||||||
4 - Open your project's `.env` file and set the following:
|
4 - Open your project's `.env` file and set the following:
|
||||||
@ -58,7 +58,7 @@ That's it! enjoy :)
|
|||||||
<a name="features"></a>
|
<a name="features"></a>
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Easy switch between PHP versions: 7.1, 7.0, 5.6...
|
- Easy switch between PHP versions: 7.2, 7.1, 5.6...
|
||||||
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
- Choose your favorite database engine: MySQL, Postgres, MariaDB...
|
||||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||||
@ -97,13 +97,13 @@ Beanstalkd - RabbitMQ - PHP Worker
|
|||||||
- **Queueing Management:**
|
- **Queueing Management:**
|
||||||
Beanstalkd Console - RabbitMQ Console
|
Beanstalkd Console - RabbitMQ Console
|
||||||
- **Random Tools:**
|
- **Random Tools:**
|
||||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - Swoole - Laravel Echo...
|
Mailu - HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Gitlab - Mailhog - MailDev - Minio - Varnish - Swoole - NetData - Portainer - Laravel Echo - Phalcon...
|
||||||
|
|
||||||
Laradock introduces the **Workspace** Image, as a development environment.
|
Laradock introduces the **Workspace** Image, as a development environment.
|
||||||
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.
|
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.
|
||||||
|
|
||||||
**Workspace Image Tools**
|
**Workspace Image Tools**
|
||||||
PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush...
|
PHP CLI - Composer - Git - Linuxbrew - Node - V8JS - Gulp - SQLite - xDebug - Envoy - Deployer - Vim - Yarn - SOAP - Drush - WP-CLI...
|
||||||
|
|
||||||
You can choose, which tools to install in your workspace container and other containers, from the `.env` file.
|
You can choose, which tools to install in your workspace container and other containers, from the `.env` file.
|
||||||
|
|
||||||
@ -116,6 +116,26 @@ If you can't find your Software in the list, build it yourself and submit it. Co
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## 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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -170,3 +190,25 @@ What's better than a **Demo Video**:
|
|||||||
You are welcome to join our chat room on Gitter.
|
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)
|
[](https://gitter.im/Laradock/laradock?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="Donations"></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)
|
||||||
|
@ -14,5 +14,6 @@ These Docker Compose projects have piqued our interest:
|
|||||||
* [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal)
|
* [MageDock](https://github.com/ojhaujjwal/magedock) by [Ujjwal Ojha](https://github.com/ojhaujjwal)
|
||||||
* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti)
|
* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti)
|
||||||
* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea)
|
* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea)
|
||||||
|
* [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek)
|
||||||
|
|
||||||
If you want your project listed here, please open an issue.
|
If you want your project listed here, please open an issue.
|
||||||
|
@ -20,11 +20,25 @@
|
|||||||
<main class="main">
|
<main class="main">
|
||||||
<div class="drawer">
|
<div class="drawer">
|
||||||
{{ partial "drawer" . }}
|
{{ partial "drawer" . }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<article class="article">
|
<article class="article">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
|
||||||
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
|
<!-- 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>
|
||||||
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
|
|
||||||
|
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||||
|
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
|
||||||
|
@ -24,6 +24,23 @@
|
|||||||
|
|
||||||
<article class="article">
|
<article class="article">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
|
|
||||||
|
<!-- 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>
|
||||||
|
|
||||||
{{ range where .Site.Pages "Type" "index" }}
|
{{ range where .Site.Pages "Type" "index" }}
|
||||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
<div class="logo">
|
<div class="logo">
|
||||||
<img src="{{ $.Site.BaseURL }}{{ . }}">
|
<img src="{{ $.Site.BaseURL }}{{ . }}">
|
||||||
</div>
|
</div>
|
||||||
|
Laradock
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<!--<div class="name">-->
|
<!--<div class="name">-->
|
||||||
<!--<strong>{{ .Site.Title }} {{ with .Site.Params.version }}<span class="version">{{ . }}</span>{{ end }}</strong>-->
|
<!--<strong>{{ .Site.Title }} {{ with .Site.Params.version }}<span class="version">{{ . }}</span>{{ end }}</strong>-->
|
||||||
@ -42,18 +43,39 @@
|
|||||||
</ul>
|
</ul>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if isset .Site.Params "author" }}
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
|
<!-- Google Ads -->
|
||||||
|
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||||
|
<!-- Laradock Vertical -->
|
||||||
|
<ins class="adsbygoogle"
|
||||||
|
style="display:inline-block;width:237px;height:600px"
|
||||||
|
data-ad-client="ca-pub-9826129398689742"
|
||||||
|
data-ad-slot="9891442983"></ins>
|
||||||
|
<script>
|
||||||
|
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||||
|
</script>
|
||||||
|
<!-- ------------------------------------------------------------------------- -->
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<!--{{ if isset .Site.Params "author" }}-->
|
||||||
<!--<hr>-->
|
<!--<hr>-->
|
||||||
<!--<span class="section">The author</span>-->
|
<!--<span class="section">The author</span>-->
|
||||||
|
<!---->
|
||||||
<ul>
|
<!--<ul>-->
|
||||||
{{ with .Site.Social.twitter }}
|
<!--{{ with .Site.Social.twitter }}-->
|
||||||
<li>
|
<!--<li>-->
|
||||||
<a href="https://twitter.com/{{ . }}" target="_blank" title="@{{ . }} on Twitter">
|
<!--<a href="https://twitter.com/{{ . }}" target="_blank" title="@{{ . }} on Twitter">-->
|
||||||
@{{ . }} on Twitter
|
<!--@{{ . }} on Twitter-->
|
||||||
</a>
|
<!--</a>-->
|
||||||
</li>
|
<!--</li>-->
|
||||||
{{ end }}
|
<!--{{ end }}-->
|
||||||
|
|
||||||
<!--{{ with .Site.Social.github }}-->
|
<!--{{ with .Site.Social.github }}-->
|
||||||
<!--<li>-->
|
<!--<li>-->
|
||||||
@ -63,16 +85,17 @@
|
|||||||
<!--</li>-->
|
<!--</li>-->
|
||||||
<!--{{ end }}-->
|
<!--{{ end }}-->
|
||||||
|
|
||||||
{{ with .Site.Social.email }}
|
<!--{{ with .Site.Social.email }}-->
|
||||||
<li>
|
<!--<li>-->
|
||||||
<a href="mailto:{{ . }}" title="Email of {{ . }}">
|
<!--<a href="mailto:{{ . }}" title="Email of {{ . }}">-->
|
||||||
Contact via email
|
<!--Contact via email-->
|
||||||
</a>
|
<!--</a>-->
|
||||||
</li>
|
<!--</li>-->
|
||||||
{{ end }}
|
<!--{{ end }}-->
|
||||||
</ul>
|
<!--</ul>-->
|
||||||
{{ end }}
|
<!--{{ end }}-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -70,6 +70,27 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
|
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
// seedanddew.com integration
|
||||||
|
var SeedAndDewConfig = {};
|
||||||
|
(function() {
|
||||||
|
SeedAndDewConfig['adClass'] = "snd-ad";
|
||||||
|
/* * * DON'T EDIT BELOW THIS LINE * * */
|
||||||
|
SeedAndDewConfig['projectId'] = 'd69f3ea2-1e30-44c7-bd2a-87686c0136e6';
|
||||||
|
SeedAndDewConfig['loadStartTime'] = performance.now();
|
||||||
|
SeedAndDewConfig['apiVersion'] = '2018-05-28'
|
||||||
|
SeedAndDewConfig['sessionId'] = Math.random().toString(36).substring(2, 15);
|
||||||
|
var snd = document.createElement('script');
|
||||||
|
snd.type = 'text/javascript';
|
||||||
|
snd.async = true;
|
||||||
|
snd.src = 'https://www.seedanddew.com/static/embed.min.js';
|
||||||
|
(document.getElementsByTagName('head')[0] ||
|
||||||
|
document.getElementsByTagName('body')[0]).appendChild(snd);
|
||||||
|
})();
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
</script>
|
||||||
|
|
||||||
{{ with .RSSLink }}
|
{{ with .RSSLink }}
|
||||||
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||||
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
<div class="button button-github" role="button" aria-label="GitHub">
|
<div class="button button-github" role="button" aria-label="GitHub">
|
||||||
<a style="padding: 0px; font-size:40px" href="https://github.com/{{ . }}" title="@{{ . }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
|
<a style="padding: 0px; font-size:40px" href="https://github.com/{{ . }}" title="@{{ . }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
|
||||||
</div>
|
</div>
|
||||||
<p style="font-size: 18px; padding: 8px">Github</p>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<!-- TODO: disabled until Hugo supports the generation of a content index natively
|
<!-- TODO: disabled until Hugo supports the generation of a content index natively
|
||||||
|
@ -108,9 +108,17 @@ font-weight:700;
|
|||||||
OVERRIDING THE DEFAULT STYLES - By Mahmoud Zalt (mahmoud@zalt.me) for Laradock.io
|
OVERRIDING THE DEFAULT STYLES - By Mahmoud Zalt (mahmoud@zalt.me) for Laradock.io
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.project .logo img{
|
|
||||||
width: 140px;
|
.project .logo img {
|
||||||
height: 140px;
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border-radius: 0%;
|
border-radius: 0%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.project .banner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
4
LICENSE
4
LICENSE
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright 2016 <Mahmoud Zalt>
|
Copyright 2018 <Mahmoud Zalt>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
FROM adminer:4.3.0
|
FROM adminer:4
|
||||||
|
|
||||||
# Version 4.3.1 contains PostgreSQL login errors. See docs.
|
LABEL maintainer="Patrick Artounian <partounian@gmail.com>"
|
||||||
# See https://sourceforge.net/p/adminer/bugs-and-features/548/
|
|
||||||
|
|
||||||
MAINTAINER Patrick Artounian <partounian@gmail.com>
|
|
||||||
|
|
||||||
# Add volume for sessions to allow session persistence
|
# Add volume for sessions to allow session persistence
|
||||||
VOLUME /sessions
|
VOLUME /sessions
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
FROM aerospike:latest
|
FROM aerospike:latest
|
||||||
|
|
||||||
MAINTAINER Luciano Jr <luciano@lucianojr.com.br>
|
LABEL maintainer="Luciano Jr <luciano@lucianojr.com.br>"
|
||||||
|
|
||||||
RUN rm /etc/aerospike/aerospike.conf
|
RUN rm /etc/aerospike/aerospike.conf
|
||||||
|
|
||||||
ADD aerospike.conf /etc/aerospike/aerospike.conf
|
COPY aerospike.conf /etc/aerospike/aerospike.conf
|
||||||
|
@ -1,16 +1,21 @@
|
|||||||
FROM webdevops/apache:ubuntu-16.04
|
FROM webdevops/apache:ubuntu-16.04
|
||||||
|
|
||||||
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
LABEL maintainer="Eric Pfeiffer <computerfr33k@users.noreply.github.com>"
|
||||||
|
|
||||||
ARG PHP_SOCKET=php-fpm:9000
|
ARG PHP_UPSTREAM_CONTAINER=php-fpm
|
||||||
|
ARG PHP_UPSTREAM_PORT=9000
|
||||||
|
ARG PHP_UPSTREAM_TIMEOUT=60
|
||||||
|
ARG DOCUMENT_ROOT=/var/www/
|
||||||
|
|
||||||
ENV WEB_PHP_SOCKET=$PHP_SOCKET
|
ENV WEB_PHP_SOCKET=${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}
|
||||||
|
|
||||||
ENV WEB_DOCUMENT_ROOT=/var/www/public/
|
ENV WEB_DOCUMENT_ROOT=${DOCUMENT_ROOT}
|
||||||
|
|
||||||
|
ENV WEB_PHP_TIMEOUT=${PHP_UPSTREAM_TIMEOUT}
|
||||||
|
|
||||||
EXPOSE 80 443
|
EXPOSE 80 443
|
||||||
|
|
||||||
WORKDIR /var/www/public/
|
WORKDIR /var/www/
|
||||||
|
|
||||||
COPY vhost.conf /etc/apache2/sites-enabled/vhost.conf
|
COPY vhost.conf /etc/apache2/sites-enabled/vhost.conf
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
ServerName laradock.dev
|
ServerName laradock.test
|
||||||
DocumentRoot /var/www/public/
|
DocumentRoot /var/www/
|
||||||
Options Indexes FollowSymLinks
|
Options Indexes FollowSymLinks
|
||||||
|
|
||||||
<Directory "/var/www/public/">
|
<Directory "/var/www/">
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
<IfVersion < 2.4>
|
<IfVersion < 2.4>
|
||||||
Allow from all
|
Allow from all
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
ServerName sample.dev
|
ServerName sample.test
|
||||||
DocumentRoot /var/www/sample/public/
|
DocumentRoot /var/www/sample/public/
|
||||||
Options Indexes FollowSymLinks
|
Options Indexes FollowSymLinks
|
||||||
|
|
||||||
|
1
aws/.gitignore
vendored
Normal file
1
aws/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
./ssh_keys
|
17
aws/Dockerfile
Normal file
17
aws/Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM python:slim
|
||||||
|
|
||||||
|
LABEL maintainer="melchabcede@gmail.com"
|
||||||
|
|
||||||
|
RUN pip install --upgrade --no-cache-dir awsebcli
|
||||||
|
RUN apt-get -yqq update && apt-get -yqq install git-all
|
||||||
|
|
||||||
|
#NOTE: make sure ssh keys are added to ssh_keys folder
|
||||||
|
|
||||||
|
RUN mkdir root/tmp_ssh
|
||||||
|
COPY /ssh_keys/. /root/.ssh/
|
||||||
|
RUN cd /root/.ssh && chmod 600 * && chmod 644 *.pub
|
||||||
|
|
||||||
|
# Set default work directory
|
||||||
|
WORKDIR /var/www
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
FROM php:latest
|
FROM php:latest
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y curl
|
RUN apt-get update && apt-get install -y curl
|
||||||
|
|
||||||
|
@ -1,16 +1,7 @@
|
|||||||
FROM phusion/baseimage:latest
|
FROM alpine
|
||||||
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
RUN apk add --no-cache beanstalkd
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
EXPOSE 11300
|
EXPOSE 11300
|
||||||
|
ENTRYPOINT ["/usr/bin/beanstalkd"]
|
||||||
CMD ["/usr/bin/beanstalkd"]
|
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
# Docs: https://caddyserver.com/docs/caddyfile
|
|
||||||
0.0.0.0:80
|
|
||||||
root /var/www/public
|
|
||||||
fastcgi / php-fpm:9000 php {
|
|
||||||
index index.php
|
|
||||||
}
|
|
||||||
|
|
||||||
# To handle .html extensions with laravel change ext to
|
|
||||||
# ext / .html
|
|
||||||
|
|
||||||
rewrite {
|
|
||||||
r .*
|
|
||||||
ext /
|
|
||||||
to /index.php?{query}
|
|
||||||
}
|
|
||||||
gzip
|
|
||||||
browse
|
|
||||||
log /var/log/caddy/access.log
|
|
||||||
errors /var/log/caddy/error.log
|
|
||||||
# Uncomment to enable TLS (HTTPS)
|
|
||||||
# Change the first list to listen on port 443 when enabling TLS
|
|
||||||
#tls self_signed
|
|
||||||
|
|
||||||
# To use Lets encrpt tls with a DNS provider uncomment these
|
|
||||||
# lines and change the provider as required
|
|
||||||
#tls {
|
|
||||||
# dns cloudflare
|
|
||||||
#}
|
|
@ -1,25 +1,30 @@
|
|||||||
FROM alpine:3.4
|
FROM golang:alpine
|
||||||
|
|
||||||
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
||||||
|
|
||||||
ENV caddy_version=0.10.3
|
RUN apk add --no-cache \
|
||||||
ARG plugins=http.git
|
openssh \
|
||||||
|
git \
|
||||||
|
build-base \
|
||||||
|
&& mkdir -p $GOPATH/src/golang.org/x/ \
|
||||||
|
&& cd $GOPATH/src/golang.org/x/ \
|
||||||
|
&& git clone https://github.com/golang/sys.git sys \
|
||||||
|
&& go get github.com/abiosoft/caddyplug/caddyplug \
|
||||||
|
&& caddyplug install-caddy \
|
||||||
|
apk del build-base
|
||||||
|
|
||||||
LABEL caddy_version="$caddy_version" architecture="amd64"
|
ARG plugins="cors"
|
||||||
|
|
||||||
RUN apk update \
|
## ARG plugins="cors cgi cloudflare azure linode"
|
||||||
&& apk upgrade \
|
|
||||||
&& apk add tar curl git openssh
|
|
||||||
|
|
||||||
RUN curl --silent --show-error --fail --location \
|
RUN caddyplug install ${plugins}
|
||||||
--header "Accept: application/tar+gzip, application/x-gzip, application/octet-stream" -o - \
|
|
||||||
"https://caddyserver.com/download/linux/amd64?plugins=${plugins}" \
|
|
||||||
| tar --no-same-owner -C /usr/bin/ -xz caddy \
|
|
||||||
&& mv /usr/bin/caddy /usr/bin/caddy \
|
|
||||||
&& chmod 0755 /usr/bin/caddy
|
|
||||||
|
|
||||||
EXPOSE 80 443 2015
|
RUN apk add --no-cache inotify-tools \
|
||||||
|
&& echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \
|
||||||
|
&& chmod +x /start.sh
|
||||||
|
|
||||||
|
EXPOSE 80 443
|
||||||
|
|
||||||
WORKDIR /var/www/public
|
WORKDIR /var/www/public
|
||||||
|
|
||||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"]
|
||||||
|
51
caddy/caddy/Caddyfile
Normal file
51
caddy/caddy/Caddyfile
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Docs: https://caddyserver.com/docs/caddyfile
|
||||||
|
0.0.0.0:80 {
|
||||||
|
root /var/www/public
|
||||||
|
fastcgi / php-fpm:9000 php {
|
||||||
|
index index.php
|
||||||
|
}
|
||||||
|
|
||||||
|
# To handle .html extensions with laravel change ext to
|
||||||
|
# ext / .html
|
||||||
|
|
||||||
|
rewrite {
|
||||||
|
to {path} {path}/ /index.php?{query}
|
||||||
|
}
|
||||||
|
gzip
|
||||||
|
browse
|
||||||
|
log /var/log/caddy/access.log
|
||||||
|
errors /var/log/caddy/error.log
|
||||||
|
# Uncomment to enable TLS (HTTPS)
|
||||||
|
# Change the first list to listen on port 443 when enabling TLS
|
||||||
|
#tls self_signed
|
||||||
|
|
||||||
|
# To use Lets encrpt tls with a DNS provider uncomment these
|
||||||
|
# lines and change the provider as required
|
||||||
|
#tls {
|
||||||
|
# dns cloudflare
|
||||||
|
#}
|
||||||
|
}
|
||||||
|
|
||||||
|
laradock1.demo:80 {
|
||||||
|
root /var/www/public
|
||||||
|
# Create a Webhook in git.
|
||||||
|
#git {
|
||||||
|
#repo https://github.com/xxx/xxx
|
||||||
|
# path /home/xxx
|
||||||
|
# #interval 60
|
||||||
|
# hook webhook laradock
|
||||||
|
# hook_type generic
|
||||||
|
#}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
laradock2.demo:80 {
|
||||||
|
# Create a Proxy and cors.
|
||||||
|
#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
|
@ -1,6 +1,6 @@
|
|||||||
FROM phusion/baseimage:latest
|
FROM phusion/baseimage:latest
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
COPY run-certbot.sh /root/certbot/run-certbot.sh
|
COPY run-certbot.sh /root/certbot/run-certbot.sh
|
||||||
|
|
||||||
|
3
couchdb/Dockerfile
Normal file
3
couchdb/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM couchdb
|
||||||
|
|
||||||
|
EXPOSE 5984
|
@ -1,16 +1,7 @@
|
|||||||
version: '2'
|
version: '3'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|
||||||
### Applications Code Container #############################
|
|
||||||
|
|
||||||
applications:
|
|
||||||
image: tianon/true
|
|
||||||
volumes:
|
|
||||||
- applications-sync:/var/www:nocopy # nocopy is required
|
|
||||||
|
|
||||||
### Volumes Setup #############################################
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
applications-sync:
|
applications-sync:
|
||||||
external:
|
external:
|
||||||
|
1045
docker-compose.yml
1045
docker-compose.yml
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>"
|
@ -1,12 +1,12 @@
|
|||||||
version: "2"
|
version: "2"
|
||||||
|
|
||||||
options:
|
options:
|
||||||
verbose: true
|
verbose: false
|
||||||
syncs:
|
syncs:
|
||||||
applications-docker-sync: # name of the intermediary sync volume
|
applications-docker-sync: # name of the intermediary sync volume
|
||||||
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
|
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
|
||||||
|
|
||||||
src: '${APPLICATION}' # host source directory
|
src: '${APP_CODE_PATH_HOST}' # host source directory
|
||||||
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
|
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
|
||||||
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
||||||
|
|
||||||
|
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:5.4.1
|
FROM docker.elastic.co/elasticsearch/elasticsearch:6.2.3
|
||||||
|
|
||||||
EXPOSE 9200 9300
|
EXPOSE 9200 9300
|
||||||
|
546
env-example
546
env-example
@ -1,98 +1,211 @@
|
|||||||
############################
|
###########################################################
|
||||||
# General Setup
|
###################### General Setup ######################
|
||||||
############################
|
###########################################################
|
||||||
|
|
||||||
### Application Path
|
### Paths #################################################
|
||||||
# Point to your application code, will be available at `/var/www`.
|
|
||||||
|
|
||||||
APPLICATION=../
|
# Point to the path of your applications code on your host
|
||||||
|
APP_CODE_PATH_HOST=../
|
||||||
|
|
||||||
### Data Path:
|
# Point to where the `APP_CODE_PATH_HOST` should be in the container
|
||||||
# For all storage systems.
|
APP_CODE_PATH_CONTAINER=/var/www
|
||||||
|
|
||||||
DATA_SAVE_PATH=~/.laradock/data
|
# You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
|
||||||
|
APP_CODE_CONTAINER_FLAG=:cached
|
||||||
|
|
||||||
### PHP version
|
# Choose storage path on your machine. For all storage systems
|
||||||
# Applies to the Workspace and PHP-FPM containers (Does not apply to HHVM)
|
DATA_PATH_HOST=~/.laradock/data
|
||||||
# Accepted values: 71 - 70 - 56
|
|
||||||
|
|
||||||
PHP_VERSION=71
|
### Drivers ################################################
|
||||||
|
|
||||||
### PHP interpreter
|
# All volumes driver
|
||||||
# Accepted values: hhvm - php-fpm
|
VOLUMES_DRIVER=local
|
||||||
|
|
||||||
|
# All Networks driver
|
||||||
|
NETWORKS_DRIVER=bridge
|
||||||
|
|
||||||
|
### Docker compose files ##################################
|
||||||
|
|
||||||
|
# Select which docker-compose files to include. If using docker-sync append `:docker-compose.sync.yml` at the end
|
||||||
|
COMPOSE_FILE=docker-compose.yml
|
||||||
|
|
||||||
|
# Change the separator from : to ; on Windows
|
||||||
|
COMPOSE_PATH_SEPARATOR=:
|
||||||
|
|
||||||
|
# Define the prefix of container names. This is useful if you have multiple projects that use laradock to have seperate containers per project.
|
||||||
|
COMPOSE_PROJECT_NAME=laradock
|
||||||
|
|
||||||
|
### PHP Version ###########################################
|
||||||
|
|
||||||
|
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.2 - 7.1 - 7.0 - 5.6
|
||||||
|
PHP_VERSION=7.2
|
||||||
|
|
||||||
|
### Phalcon Version ###########################################
|
||||||
|
|
||||||
|
# Select a Phalcon version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 3.4.0+
|
||||||
|
PHALCON_VERSION=3.4.1
|
||||||
|
|
||||||
|
### PHP Interpreter #######################################
|
||||||
|
|
||||||
|
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
||||||
PHP_INTERPRETER=php-fpm
|
PHP_INTERPRETER=php-fpm
|
||||||
|
|
||||||
############################
|
### Docker Host IP ########################################
|
||||||
# Containers Customization
|
|
||||||
############################
|
|
||||||
|
|
||||||
### WORKSPACE ##########################################################################################################
|
# Enter your Docker Host IP (will be appended to /etc/hosts). Default is `10.0.75.1`
|
||||||
|
DOCKER_HOST_IP=10.0.75.1
|
||||||
|
|
||||||
|
### Remote Interpreter ####################################
|
||||||
|
|
||||||
|
# Choose a Remote Interpreter entry matching name. Default is `laradock`
|
||||||
|
PHP_IDE_CONFIG=serverName=laradock
|
||||||
|
|
||||||
|
### Windows Path ##########################################
|
||||||
|
|
||||||
|
# A fix for Windows users, to ensure the application path works
|
||||||
|
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||||
|
|
||||||
|
### Environment ###########################################
|
||||||
|
|
||||||
|
# If you need to change the sources (i.e. to China), set CHANGE_SOURCE to true
|
||||||
|
CHANGE_SOURCE=false
|
||||||
|
|
||||||
|
### Docker Sync ###########################################
|
||||||
|
|
||||||
|
# If you are using Docker Sync. For `osx` use 'native_osx', for `windows` use 'unison', for `linux` docker-sync is not required
|
||||||
|
DOCKER_SYNC_STRATEGY=native_osx
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
################ Containers Customization #################
|
||||||
|
###########################################################
|
||||||
|
|
||||||
|
### WORKSPACE #############################################
|
||||||
|
|
||||||
|
WORKSPACE_COMPOSER_GLOBAL_INSTALL=true
|
||||||
|
WORKSPACE_COMPOSER_REPO_PACKAGIST=
|
||||||
|
WORKSPACE_INSTALL_NODE=true
|
||||||
|
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_PHPREDIS=true
|
||||||
|
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||||
|
WORKSPACE_INSTALL_SUBVERSION=false
|
||||||
WORKSPACE_INSTALL_XDEBUG=false
|
WORKSPACE_INSTALL_XDEBUG=false
|
||||||
|
WORKSPACE_INSTALL_PHPDBG=false
|
||||||
|
WORKSPACE_INSTALL_SSH2=false
|
||||||
|
WORKSPACE_INSTALL_LDAP=false
|
||||||
|
WORKSPACE_INSTALL_GMP=false
|
||||||
WORKSPACE_INSTALL_SOAP=false
|
WORKSPACE_INSTALL_SOAP=false
|
||||||
|
WORKSPACE_INSTALL_IMAP=false
|
||||||
WORKSPACE_INSTALL_MONGO=false
|
WORKSPACE_INSTALL_MONGO=false
|
||||||
|
WORKSPACE_INSTALL_AMQP=false
|
||||||
WORKSPACE_INSTALL_MSSQL=false
|
WORKSPACE_INSTALL_MSSQL=false
|
||||||
WORKSPACE_INSTALL_NODE=false
|
|
||||||
WORKSPACE_INSTALL_YARN=false
|
|
||||||
WORKSPACE_INSTALL_DRUSH=false
|
WORKSPACE_INSTALL_DRUSH=false
|
||||||
|
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||||
|
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
||||||
|
WORKSPACE_INSTALL_WP_CLI=false
|
||||||
WORKSPACE_INSTALL_AEROSPIKE=false
|
WORKSPACE_INSTALL_AEROSPIKE=false
|
||||||
WORKSPACE_INSTALL_V8JS=false
|
WORKSPACE_INSTALL_V8JS=false
|
||||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
|
|
||||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
|
||||||
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
||||||
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
|
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
|
||||||
WORKSPACE_INSTALL_DEPLOYER=false
|
WORKSPACE_INSTALL_DEPLOYER=false
|
||||||
|
WORKSPACE_INSTALL_PRESTISSIMO=false
|
||||||
WORKSPACE_INSTALL_LINUXBREW=false
|
WORKSPACE_INSTALL_LINUXBREW=false
|
||||||
WORKSPACE_INSTALL_MC=false
|
WORKSPACE_INSTALL_MC=false
|
||||||
|
WORKSPACE_INSTALL_SYMFONY=false
|
||||||
|
WORKSPACE_INSTALL_PYTHON=false
|
||||||
WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=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_LIBPNG=false
|
||||||
|
WORKSPACE_INSTALL_IONCUBE=false
|
||||||
|
WORKSPACE_INSTALL_MYSQL_CLIENT=false
|
||||||
WORKSPACE_PUID=1000
|
WORKSPACE_PUID=1000
|
||||||
WORKSPACE_PGID=1000
|
WORKSPACE_PGID=1000
|
||||||
WORKSPACE_NODE_VERSION=stable
|
WORKSPACE_CHROME_DRIVER_VERSION=2.42
|
||||||
WORKSPACE_YARN_VERSION=latest
|
|
||||||
WORKSPACE_TIMEZONE=UTC
|
WORKSPACE_TIMEZONE=UTC
|
||||||
WORKSPACE_SSH_PORT=2222
|
WORKSPACE_SSH_PORT=2222
|
||||||
|
|
||||||
### PHP_FPM ############################################################################################################
|
### PHP_FPM ###############################################
|
||||||
|
|
||||||
PHP_FPM_INSTALL_XDEBUG=false
|
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
||||||
PHP_FPM_INSTALL_MONGO=false
|
PHP_FPM_INSTALL_BCMATH=true
|
||||||
PHP_FPM_INSTALL_MSSQL=false
|
PHP_FPM_INSTALL_MYSQLI=true
|
||||||
PHP_FPM_INSTALL_SOAP=false
|
PHP_FPM_INSTALL_INTL=true
|
||||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=false
|
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
||||||
PHP_FPM_INSTALL_BCMATH=false
|
PHP_FPM_INSTALL_OPCACHE=true
|
||||||
PHP_FPM_INSTALL_PHPREDIS=false
|
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
||||||
|
PHP_FPM_INSTALL_PHPREDIS=true
|
||||||
PHP_FPM_INSTALL_MEMCACHED=false
|
PHP_FPM_INSTALL_MEMCACHED=false
|
||||||
PHP_FPM_INSTALL_OPCACHE=false
|
PHP_FPM_INSTALL_XDEBUG=false
|
||||||
|
PHP_FPM_INSTALL_PHPDBG=false
|
||||||
|
PHP_FPM_INSTALL_IMAP=false
|
||||||
|
PHP_FPM_INSTALL_MONGO=false
|
||||||
|
PHP_FPM_INSTALL_AMQP=false
|
||||||
|
PHP_FPM_INSTALL_MSSQL=false
|
||||||
|
PHP_FPM_INSTALL_SSH2=false
|
||||||
|
PHP_FPM_INSTALL_SOAP=false
|
||||||
|
PHP_FPM_INSTALL_GMP=false
|
||||||
PHP_FPM_INSTALL_EXIF=false
|
PHP_FPM_INSTALL_EXIF=false
|
||||||
PHP_FPM_INSTALL_AEROSPIKE=false
|
PHP_FPM_INSTALL_AEROSPIKE=false
|
||||||
PHP_FPM_INSTALL_MYSQLI=false
|
PHP_FPM_INSTALL_PGSQL=false
|
||||||
PHP_FPM_INSTALL_TOKENIZER=false
|
|
||||||
PHP_FPM_INSTALL_INTL=false
|
|
||||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||||
PHP_FPM_INSTALL_LDAP=false
|
PHP_FPM_INSTALL_LDAP=false
|
||||||
|
PHP_FPM_INSTALL_PHALCON=false
|
||||||
PHP_FPM_INSTALL_SWOOLE=false
|
PHP_FPM_INSTALL_SWOOLE=false
|
||||||
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
|
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||||
|
PHP_FPM_INSTALL_PCNTL=false
|
||||||
|
PHP_FPM_INSTALL_CALENDAR=false
|
||||||
|
PHP_FPM_INSTALL_FAKETIME=false
|
||||||
|
PHP_FPM_INSTALL_IONCUBE=false
|
||||||
|
PHP_FPM_FAKETIME=-0
|
||||||
|
PHP_FPM_INSTALL_APCU=false
|
||||||
|
PHP_FPM_INSTALL_YAML=false
|
||||||
|
|
||||||
### NGINX ##############################################################################################################
|
### 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_PUID=1000
|
||||||
|
PHP_WORKER_PGID=1000
|
||||||
|
|
||||||
|
### NGINX #################################################
|
||||||
|
|
||||||
NGINX_HOST_HTTP_PORT=80
|
NGINX_HOST_HTTP_PORT=80
|
||||||
NGINX_HOST_HTTPS_PORT=443
|
NGINX_HOST_HTTPS_PORT=443
|
||||||
NGINX_HOST_LOG_PATH=./logs/nginx/
|
NGINX_HOST_LOG_PATH=./logs/nginx/
|
||||||
NGINX_SITES_PATH=./nginx/sites/
|
NGINX_SITES_PATH=./nginx/sites/
|
||||||
|
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
|
||||||
|
NGINX_PHP_UPSTREAM_PORT=9000
|
||||||
|
NGINX_SSL_PATH=./nginx/ssl/
|
||||||
|
|
||||||
### APACHE #############################################################################################################
|
### APACHE ################################################
|
||||||
|
|
||||||
APACHE_HOST_HTTP_PORT=80
|
APACHE_HOST_HTTP_PORT=80
|
||||||
APACHE_HOST_HTTPS_PORT=443
|
APACHE_HOST_HTTPS_PORT=443
|
||||||
APACHE2_PHP_SOCKET=php-fpm:9000
|
|
||||||
APACHE_HOST_LOG_PATH=./logs/apache2
|
APACHE_HOST_LOG_PATH=./logs/apache2
|
||||||
APACHE_SITES_PATH=./apache2/sites
|
APACHE_SITES_PATH=./apache2/sites
|
||||||
PHP_SOCKET=php-fpm:9000
|
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
|
||||||
|
APACHE_PHP_UPSTREAM_PORT=9000
|
||||||
|
APACHE_PHP_UPSTREAM_TIMEOUT=60
|
||||||
|
APACHE_DOCUMENT_ROOT=/var/www/
|
||||||
|
|
||||||
### MYSQL ##############################################################################################################
|
### MYSQL #################################################
|
||||||
|
|
||||||
MYSQL_VERSION=8.0
|
MYSQL_VERSION=latest
|
||||||
MYSQL_DATABASE=default
|
MYSQL_DATABASE=default
|
||||||
MYSQL_USER=default
|
MYSQL_USER=default
|
||||||
MYSQL_PASSWORD=secret
|
MYSQL_PASSWORD=secret
|
||||||
@ -100,7 +213,15 @@ MYSQL_PORT=3306
|
|||||||
MYSQL_ROOT_PASSWORD=root
|
MYSQL_ROOT_PASSWORD=root
|
||||||
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### Percona ############################################################################################################
|
### REDIS #################################################
|
||||||
|
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
### ZooKeeper #############################################
|
||||||
|
|
||||||
|
ZOOKEEPER_PORT=2181
|
||||||
|
|
||||||
|
### Percona ###############################################
|
||||||
|
|
||||||
PERCONA_DATABASE=homestead
|
PERCONA_DATABASE=homestead
|
||||||
PERCONA_USER=homestead
|
PERCONA_USER=homestead
|
||||||
@ -109,13 +230,13 @@ PERCONA_PORT=3306
|
|||||||
PERCONA_ROOT_PASSWORD=root
|
PERCONA_ROOT_PASSWORD=root
|
||||||
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
|
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### MSSQL ##############################################################################################################
|
### MSSQL #################################################
|
||||||
|
|
||||||
MSSQL_DATABASE=homestead
|
MSSQL_DATABASE=homestead
|
||||||
MSSQL_PASSWORD=yourStrong(!)Password
|
MSSQL_PASSWORD=yourStrong(!)Password
|
||||||
MSSQL_PORT=1433
|
MSSQL_PORT=1433
|
||||||
|
|
||||||
### MARIADB ############################################################################################################
|
### MARIADB ###############################################
|
||||||
|
|
||||||
MARIADB_DATABASE=default
|
MARIADB_DATABASE=default
|
||||||
MARIADB_USER=default
|
MARIADB_USER=default
|
||||||
@ -124,14 +245,15 @@ MARIADB_PORT=3306
|
|||||||
MARIADB_ROOT_PASSWORD=root
|
MARIADB_ROOT_PASSWORD=root
|
||||||
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
|
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### POSTGRES ###########################################################################################################
|
### POSTGRES ##############################################
|
||||||
|
|
||||||
POSTGRES_DB=default
|
POSTGRES_DB=default
|
||||||
POSTGRES_USER=default
|
POSTGRES_USER=default
|
||||||
POSTGRES_PASSWORD=secret
|
POSTGRES_PASSWORD=secret
|
||||||
POSTGRES_PORT=5432
|
POSTGRES_PORT=5432
|
||||||
|
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d
|
||||||
|
|
||||||
### RABBITMQ ###########################################################################################################
|
### RABBITMQ ##############################################
|
||||||
|
|
||||||
RABBITMQ_NODE_HOST_PORT=5672
|
RABBITMQ_NODE_HOST_PORT=5672
|
||||||
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
|
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
|
||||||
@ -139,43 +261,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
|
|||||||
RABBITMQ_DEFAULT_USER=guest
|
RABBITMQ_DEFAULT_USER=guest
|
||||||
RABBITMQ_DEFAULT_PASS=guest
|
RABBITMQ_DEFAULT_PASS=guest
|
||||||
|
|
||||||
### ELASTICSEARCH ######################################################################################################
|
### ELASTICSEARCH #########################################
|
||||||
|
|
||||||
ELASTICSEARCH_HOST_HTTP_PORT=9200
|
ELASTICSEARCH_HOST_HTTP_PORT=9200
|
||||||
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
|
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
|
||||||
|
|
||||||
### KIBANA #############################################################################################################
|
### KIBANA ################################################
|
||||||
|
|
||||||
KIBANA_HTTP_PORT=5601
|
KIBANA_HTTP_PORT=5601
|
||||||
|
|
||||||
### MEMCACHED ##########################################################################################################
|
### MEMCACHED #############################################
|
||||||
|
|
||||||
MEMCACHED_HOST_PORT=11211
|
MEMCACHED_HOST_PORT=11211
|
||||||
|
|
||||||
### BEANSTALKD CONSOLE #################################################################################################
|
### BEANSTALKD CONSOLE ####################################
|
||||||
|
|
||||||
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
|
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
|
||||||
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
|
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
|
||||||
BEANSTALKD_CONSOLE_HOST_PORT=2080
|
BEANSTALKD_CONSOLE_HOST_PORT=2080
|
||||||
|
|
||||||
### BEANSTALKD #########################################################################################################
|
### BEANSTALKD ############################################
|
||||||
|
|
||||||
BEANSTALKD_HOST_PORT=11300
|
BEANSTALKD_HOST_PORT=11300
|
||||||
|
|
||||||
### SELENIUM ###########################################################################################################
|
### SELENIUM ##############################################
|
||||||
|
|
||||||
SELENIUM_PORT=4444
|
SELENIUM_PORT=4444
|
||||||
|
|
||||||
### MINIO ##############################################################################################################
|
### MINIO #################################################
|
||||||
|
|
||||||
MINIO_PORT=9000
|
MINIO_PORT=9000
|
||||||
|
|
||||||
### ADMINER ############################################################################################################
|
### ADMINER ###############################################
|
||||||
|
|
||||||
ADM_PORT=8080
|
ADM_PORT=8080
|
||||||
ADM_INSTALL_MSSQL=false
|
ADM_INSTALL_MSSQL=false
|
||||||
|
|
||||||
### PHP MY ADMIN #######################################################################################################
|
### PHP MY ADMIN ##########################################
|
||||||
|
|
||||||
# Accepted values: mariadb - mysql
|
# Accepted values: mariadb - mysql
|
||||||
|
|
||||||
@ -188,103 +310,345 @@ PMA_PASSWORD=secret
|
|||||||
PMA_ROOT_PASSWORD=secret
|
PMA_ROOT_PASSWORD=secret
|
||||||
PMA_PORT=8080
|
PMA_PORT=8080
|
||||||
|
|
||||||
### VARNISH ############################################################################################################
|
### MAILDEV ###############################################
|
||||||
|
|
||||||
|
MAILDEV_HTTP_PORT=1080
|
||||||
|
MAILDEV_SMTP_PORT=25
|
||||||
|
|
||||||
|
### VARNISH ###############################################
|
||||||
|
|
||||||
VARNISH_CONFIG=/etc/varnish/default.vcl
|
VARNISH_CONFIG=/etc/varnish/default.vcl
|
||||||
VARNISH_PORT=8080
|
VARNISH_PORT=8080
|
||||||
VARNISH_BACKEND_PORT=8888
|
VARNISH_BACKEND_PORT=8888
|
||||||
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
|
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
|
||||||
|
|
||||||
### Varnish ############################################################################################################
|
### Varnish ###############################################
|
||||||
|
|
||||||
# Proxy 1
|
# Proxy 1
|
||||||
|
|
||||||
VARNISH_PROXY1_CACHE_SIZE=128m
|
VARNISH_PROXY1_CACHE_SIZE=128m
|
||||||
VARNISH_PROXY1_BACKEND_HOST=workspace
|
VARNISH_PROXY1_BACKEND_HOST=workspace
|
||||||
VARNISH_PROXY1_SERVER=SERVER1
|
VARNISH_PROXY1_SERVER=SERVER1
|
||||||
|
|
||||||
# Proxy 2
|
# Proxy 2
|
||||||
|
|
||||||
VARNISH_PROXY2_CACHE_SIZE=128m
|
VARNISH_PROXY2_CACHE_SIZE=128m
|
||||||
VARNISH_PROXY2_BACKEND_HOST=workspace
|
VARNISH_PROXY2_BACKEND_HOST=workspace
|
||||||
VARNISH_PROXY2_SERVER=SERVER2
|
VARNISH_PROXY2_SERVER=SERVER2
|
||||||
|
|
||||||
### HAPROXY ############################################################################################################
|
### HAPROXY ###############################################
|
||||||
|
|
||||||
HAPROXY_HOST_HTTP_PORT=8085
|
HAPROXY_HOST_HTTP_PORT=8085
|
||||||
|
|
||||||
### JENKINS ############################################################################################################
|
### JENKINS ###############################################
|
||||||
|
|
||||||
JENKINS_HOST_HTTP_PORT=8090
|
JENKINS_HOST_HTTP_PORT=8090
|
||||||
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
||||||
JENKINS_HOME=./jenkins/jenkins_home
|
JENKINS_HOME=./jenkins/jenkins_home
|
||||||
|
|
||||||
### BLACKFIRE ##########################################################################################################
|
### GRAFANA ###############################################
|
||||||
|
|
||||||
# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time.
|
GRAFANA_PORT=3000
|
||||||
# visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.
|
|
||||||
|
|
||||||
|
### 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.
|
||||||
INSTALL_BLACKFIRE=false
|
INSTALL_BLACKFIRE=false
|
||||||
BLACKFIRE_CLIENT_ID=<client_id>
|
BLACKFIRE_CLIENT_ID=<client_id>
|
||||||
BLACKFIRE_CLIENT_TOKEN=<client_token>
|
BLACKFIRE_CLIENT_TOKEN=<client_token>
|
||||||
BLACKFIRE_SERVER_ID=<server_id>
|
BLACKFIRE_SERVER_ID=<server_id>
|
||||||
BLACKFIRE_SERVER_TOKEN=<server_token>
|
BLACKFIRE_SERVER_TOKEN=<server_token>
|
||||||
|
|
||||||
### AEROSPIKE ##########################################################################################################
|
### AEROSPIKE #############################################
|
||||||
|
|
||||||
AEROSPIKE_SERVICE_PORT=3000
|
AEROSPIKE_SERVICE_PORT=3000
|
||||||
AEROSPIKE_FABRIC_PORT=3001
|
AEROSPIKE_FABRIC_PORT=3001
|
||||||
AEROSPIKE_HEARTBEAT_PORT=3002
|
AEROSPIKE_HEARTBEAT_PORT=3002
|
||||||
AEROSPIKE_INFO_PORT=3003
|
AEROSPIKE_INFO_PORT=3003
|
||||||
|
|
||||||
### RETHINKDB ##########################################################################################################
|
# for all versions
|
||||||
|
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz
|
||||||
|
# for php 5.6
|
||||||
|
# AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz
|
||||||
|
|
||||||
|
### RETHINKDB #############################################
|
||||||
|
|
||||||
RETHINKDB_PORT=8090
|
RETHINKDB_PORT=8090
|
||||||
|
|
||||||
### MONGODB ############################################################################################################
|
### MONGODB ###############################################
|
||||||
|
|
||||||
MONGODB_PORT=27017
|
MONGODB_PORT=27017
|
||||||
|
|
||||||
### CADDY ##############################################################################################################
|
### CADDY #################################################
|
||||||
|
|
||||||
CADDY_HOST_HTTP_PORT=80
|
CADDY_HOST_HTTP_PORT=80
|
||||||
CADDY_HOST_HTTPS_PORT=443
|
CADDY_HOST_HTTPS_PORT=443
|
||||||
CADDY_HOST_LOG_PATH=./logs/caddy
|
CADDY_HOST_LOG_PATH=./logs/caddy
|
||||||
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
|
CADDY_CONFIG_PATH=./caddy/caddy
|
||||||
|
|
||||||
### LARAVEL ECHO SERVER ################################################################################################
|
### LARAVEL ECHO SERVER ###################################
|
||||||
|
|
||||||
LARAVEL_ECHO_SERVER_PORT=6001
|
LARAVEL_ECHO_SERVER_PORT=6001
|
||||||
|
|
||||||
### DOCKER-SYNC ################################################################################################
|
### THUMBOR ############################################################################################################
|
||||||
|
|
||||||
# osx: 'native_osx' (default)
|
THUMBOR_PORT=8000
|
||||||
# windows: 'unison'
|
THUMBOR_LOG_FORMAT="%(asctime)s %(name)s:%(levelname)s %(message)s"
|
||||||
# linux: docker-sync not required
|
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
|
||||||
|
|
||||||
DOCKER_SYNC_STRATEGY=native_osx
|
### SOLR ##################################################
|
||||||
|
|
||||||
##### TO BE CONTINUE .................................
|
SOLR_VERSION=5.5
|
||||||
|
SOLR_PORT=8983
|
||||||
|
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||||
|
SOLR_DATAIMPORTHANDLER_MSSQL=false
|
||||||
|
|
||||||
# ......... Missing: neo4j mongo rethinkdb redis aerospike pgadmin...
|
### 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 ###############################################
|
||||||
# Miscellaneous
|
GITLAB_CI_SERVER_URL=http://localhost:8989
|
||||||
############################
|
GITLAB_RUNNER_REGISTRATION_TOKEN=<my-registration-token>
|
||||||
|
GITLAB_REGISTER_NON_INTERACTIVE=true
|
||||||
|
|
||||||
# Replace with your Docker Host IP (will be appended to /etc/hosts)
|
### 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
|
||||||
|
|
||||||
DOCKER_HOST_IP=10.0.75.1
|
### 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
|
||||||
|
|
||||||
|
|
||||||
# The Remote Interpreter entry matching name `laradock`
|
### TRAEFIK #################################################
|
||||||
|
|
||||||
PHP_IDE_CONFIG=serverName=laradock
|
TRAEFIK_HOST_HTTP_PORT=80
|
||||||
|
TRAEFIK_HOST_HTTPS_PORT=443
|
||||||
|
|
||||||
|
|
||||||
# Fix for windows users to make sure the application path works.
|
### MOSQUITTO #################################################
|
||||||
|
|
||||||
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
MOSQUITTO_PORT=9001
|
||||||
|
|
||||||
|
### COUCHDB ###################################################
|
||||||
|
|
||||||
|
COUCHDB_PORT=5984
|
||||||
|
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
grafana/Dockerfile
Normal file
3
grafana/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM grafana/grafana:latest
|
||||||
|
|
||||||
|
EXPOSE 3000
|
@ -1,5 +1,5 @@
|
|||||||
FROM dockercloud/haproxy:latest
|
FROM dockercloud/haproxy:latest
|
||||||
|
|
||||||
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com>
|
LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
FROM ubuntu:14.04
|
FROM ubuntu:14.04
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
|
RUN apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
|
||||||
|
|
||||||
RUN apt-get update -y \
|
RUN apt-get update -y \
|
||||||
&& apt-get install -y software-properties-common \
|
&& apt-get install -y software-properties-common wget \
|
||||||
|
&& wget -O - http://dl.hhvm.com/conf/hhvm.gpg.key | sudo apt-key add - \
|
||||||
&& add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
|
&& add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main" \
|
||||||
&& apt-get update -y \
|
&& apt-get update -y \
|
||||||
&& apt-get install -y hhvm \
|
&& apt-get install -y hhvm \
|
||||||
@ -14,7 +15,7 @@ RUN apt-get update -y \
|
|||||||
|
|
||||||
RUN mkdir -p /var/www
|
RUN mkdir -p /var/www
|
||||||
|
|
||||||
ADD server.ini /etc/hhvm/server.ini
|
COPY server.ini /etc/hhvm/server.ini
|
||||||
|
|
||||||
RUN usermod -u 1000 www-data
|
RUN usermod -u 1000 www-data
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
RUN python -m pip --quiet --no-cache-dir install \
|
||||||
|
ipyparallel
|
||||||
|
|
||||||
|
RUN ipython profile create --parallel --profile=default
|
||||||
|
|
||||||
|
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||||
|
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||||
|
|
||||||
|
CMD ["sh","-c","ipcontroller --ip=* --reuse"]
|
23
ipython/Dockerfile.engine
Normal file
23
ipython/Dockerfile.engine
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
FROM python:3.5-alpine
|
||||||
|
|
||||||
|
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apk add --no-cache build-base
|
||||||
|
|
||||||
|
RUN python -m pip --quiet --no-cache-dir install \
|
||||||
|
ipyparallel \
|
||||||
|
numpy \
|
||||||
|
pandas \
|
||||||
|
pymongo \
|
||||||
|
redis \
|
||||||
|
requests \
|
||||||
|
bs4
|
||||||
|
|
||||||
|
RUN ipython profile create --parallel --profile=default
|
||||||
|
|
||||||
|
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||||
|
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||||
|
|
||||||
|
CMD ["sh","-c","ipcluster engines"]
|
16
ipython/ipcontroller-client.json
Normal file
16
ipython/ipcontroller-client.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"key": "868074dd-060311910ab3d6991611bccf",
|
||||||
|
"signature_scheme": "hmac-sha256",
|
||||||
|
"unpack": "json",
|
||||||
|
"pack": "json",
|
||||||
|
"ssh": "",
|
||||||
|
"task_scheme": "leastload",
|
||||||
|
"interface": "tcp://*",
|
||||||
|
"location": "laradock-ipython",
|
||||||
|
"notification": 33338,
|
||||||
|
"iopub": 33337,
|
||||||
|
"control": 33336,
|
||||||
|
"mux": 33335,
|
||||||
|
"task": 33334,
|
||||||
|
"registration": 33333
|
||||||
|
}
|
16
ipython/ipcontroller-engine.json
Normal file
16
ipython/ipcontroller-engine.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"key": "868074dd-060311910ab3d6991611bccf",
|
||||||
|
"signature_scheme": "hmac-sha256",
|
||||||
|
"unpack": "json",
|
||||||
|
"pack": "json",
|
||||||
|
"ssh": "",
|
||||||
|
"interface": "tcp://*",
|
||||||
|
"location": "laradock-ipython",
|
||||||
|
"iopub": 33327,
|
||||||
|
"hb_ping": 33328,
|
||||||
|
"hb_pong": 33329,
|
||||||
|
"control": 33330,
|
||||||
|
"mux": 33331,
|
||||||
|
"task": 33332,
|
||||||
|
"registration": 33333
|
||||||
|
}
|
@ -25,8 +25,8 @@ VOLUME /var/jenkins_home
|
|||||||
# or config file with your custom jenkins Docker image.
|
# or config file with your custom jenkins Docker image.
|
||||||
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
||||||
|
|
||||||
ENV TINI_VERSION 0.13.2
|
ENV TINI_VERSION 0.16.1
|
||||||
ENV TINI_SHA afbf8de8a63ce8e4f18cb3f34dfdbbd354af68a1
|
ENV TINI_SHA d1cb5d71adc01d47e302ea439d70c79bd0864288
|
||||||
|
|
||||||
# Use tini as subreaper in Docker container to adopt zombie processes
|
# Use tini as subreaper in Docker container to adopt zombie processes
|
||||||
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
|
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v${TINI_VERSION}/tini-static-amd64 -o /bin/tini && chmod +x /bin/tini \
|
||||||
@ -36,10 +36,12 @@ COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/tcp-slave-agent-port.groov
|
|||||||
|
|
||||||
# jenkins version being bundled in this docker image
|
# jenkins version being bundled in this docker image
|
||||||
ARG JENKINS_VERSION
|
ARG JENKINS_VERSION
|
||||||
ENV JENKINS_VERSION ${JENKINS_VERSION:-2.32.3}
|
ENV JENKINS_VERSION ${JENKINS_VERSION:-2.89.2}
|
||||||
|
|
||||||
# jenkins.war checksum, download will be validated using it
|
# jenkins.war checksum, download will be validated using it
|
||||||
ARG JENKINS_SHA=a25b9a314ca9e76f9673da7309e1882e32674223
|
# 2.89.2
|
||||||
|
ARG JENKINS_SHA=014f669f32bc6e925e926e260503670b32662f006799b133a031a70a794c8a14
|
||||||
|
|
||||||
|
|
||||||
# Can be used to customize where jenkins.war get downloaded from
|
# Can be used to customize where jenkins.war get downloaded from
|
||||||
ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war
|
ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-war/${JENKINS_VERSION}/jenkins-war-${JENKINS_VERSION}.war
|
||||||
@ -47,7 +49,7 @@ ARG JENKINS_URL=https://repo.jenkins-ci.org/public/org/jenkins-ci/main/jenkins-w
|
|||||||
# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
|
# could use ADD but this one does not check Last-Modified header neither does it allow to control checksum
|
||||||
# see https://github.com/docker/docker/issues/8331
|
# see https://github.com/docker/docker/issues/8331
|
||||||
RUN curl -fsSL ${JENKINS_URL} -o /usr/share/jenkins/jenkins.war \
|
RUN curl -fsSL ${JENKINS_URL} -o /usr/share/jenkins/jenkins.war \
|
||||||
&& echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha1sum -c -
|
&& echo "${JENKINS_SHA} /usr/share/jenkins/jenkins.war" | sha256sum -c -
|
||||||
|
|
||||||
ENV JENKINS_UC https://updates.jenkins.io
|
ENV JENKINS_UC https://updates.jenkins.io
|
||||||
RUN chown -R ${user} "$JENKINS_HOME" /usr/share/jenkins/ref
|
RUN chown -R ${user} "$JENKINS_HOME" /usr/share/jenkins/ref
|
||||||
@ -71,7 +73,7 @@ RUN apt-get install -y curl && curl -sSL https://get.docker.com/ | sh
|
|||||||
RUN usermod -aG docker jenkins
|
RUN usermod -aG docker jenkins
|
||||||
|
|
||||||
# Install Docker-Compose
|
# Install Docker-Compose
|
||||||
RUN curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
RUN curl -L "https://github.com/docker/compose/releases/download/1.16.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
RUN chmod +x /usr/local/bin/docker-compose
|
RUN chmod +x /usr/local/bin/docker-compose
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.
|
|||||||
```
|
```
|
||||||
|
|
||||||
# Configuring reverse proxy
|
# Configuring reverse proxy
|
||||||
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environnement variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environment variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
||||||
- [Apache](https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache)
|
- [Apache](https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache)
|
||||||
- [Nginx](https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy)
|
- [Nginx](https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy)
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
|
|||||||
## Preinstalling plugins
|
## Preinstalling plugins
|
||||||
|
|
||||||
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
|
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
|
||||||
Use plugin artifact ID, whithout `-plugin` extension, and append the version if needed separated by `:`.
|
Use plugin artifact ID, without `-plugin` extension, and append the version if needed separated by `:`.
|
||||||
Dependencies that are already included in the Jenkins war will only be downloaded if their required version is newer than the one included.
|
Dependencies that are already included in the Jenkins war will only be downloaded if their required version is newer than the one included.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
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:5.4.1
|
FROM docker.elastic.co/kibana/kibana:6.2.3
|
||||||
|
|
||||||
EXPOSE 5601
|
EXPOSE 5601
|
||||||
|
@ -1,15 +1,22 @@
|
|||||||
FROM node:argon
|
FROM node:alpine
|
||||||
|
|
||||||
# Create app directory
|
# Create app directory
|
||||||
RUN mkdir -p /usr/src/app
|
RUN mkdir -p /usr/src/app
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
# Install app dependencies
|
# Install app dependencies
|
||||||
COPY package.json /usr/src/app/
|
COPY package.json /usr/src/app/
|
||||||
|
|
||||||
|
RUN apk add --update \
|
||||||
|
python \
|
||||||
|
python-dev \
|
||||||
|
py-pip \
|
||||||
|
build-base
|
||||||
|
|
||||||
RUN npm install
|
RUN npm install
|
||||||
|
|
||||||
# Bundle app source
|
# Bundle app source
|
||||||
COPY laravel-echo-server.json /usr/src/app/laravel-echo-server.json
|
COPY laravel-echo-server.json /usr/src/app/laravel-echo-server.json
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
CMD [ "npm", "start" ]
|
CMD [ "npm", "start" ]
|
||||||
|
107
laravel-horizon/Dockerfile
Normal file
107
laravel-horizon/Dockerfile
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
#
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
# Image Setup
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
|
||||||
|
ARG PHP_VERSION=${PHP_VERSION}
|
||||||
|
FROM php:${PHP_VERSION}-alpine
|
||||||
|
|
||||||
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
|
RUN apk --update add wget \
|
||||||
|
curl \
|
||||||
|
git \
|
||||||
|
build-base \
|
||||||
|
libmemcached-dev \
|
||||||
|
libmcrypt-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
zlib-dev \
|
||||||
|
autoconf \
|
||||||
|
cyrus-sasl-dev \
|
||||||
|
libgsasl-dev \
|
||||||
|
supervisor
|
||||||
|
|
||||||
|
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
|
||||||
|
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
|
||||||
|
|
||||||
|
#Install BCMath package:
|
||||||
|
ARG INSTALL_BCMATH=false
|
||||||
|
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||||
|
docker-php-ext-install bcmath \
|
||||||
|
;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
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# PHP Memcached:
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
ARG INSTALL_MEMCACHED=false
|
||||||
|
|
||||||
|
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||||
|
# Install the php memcached extension
|
||||||
|
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||||
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/2.2.0.tar.gz"; \
|
||||||
|
else \
|
||||||
|
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz"; \
|
||||||
|
fi \
|
||||||
|
&& mkdir -p memcached \
|
||||||
|
&& tar -C memcached -zxvf /tmp/memcached.tar.gz --strip 1 \
|
||||||
|
&& ( \
|
||||||
|
cd memcached \
|
||||||
|
&& phpize \
|
||||||
|
&& ./configure \
|
||||||
|
&& make -j$(nproc) \
|
||||||
|
&& make install \
|
||||||
|
) \
|
||||||
|
&& rm -r memcached \
|
||||||
|
&& rm /tmp/memcached.tar.gz \
|
||||||
|
&& docker-php-ext-enable memcached \
|
||||||
|
;fi
|
||||||
|
|
||||||
|
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
maildev/Dockerfile
Normal file
5
maildev/Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM djfarrelly/maildev
|
||||||
|
|
||||||
|
LABEL maintainer="Maxime Hélias <maximehelias16@gmail.com>"
|
||||||
|
|
||||||
|
EXPOSE 80 25
|
@ -1,6 +1,6 @@
|
|||||||
FROM mailhog/mailhog
|
FROM mailhog/mailhog
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
CMD ["Mailhog"]
|
CMD ["Mailhog"]
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
FROM mariadb:latest
|
FROM mariadb:latest
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
ADD my.cnf /etc/mysql/conf.d/my.cnf
|
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||||
|
|
||||||
CMD ["mysqld"]
|
CMD ["mysqld"]
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
###
|
###
|
||||||
### this sql script is auto run when mariadb container start and $DATA_SAVE_PATH/mariadb not exists.
|
### this sql script is auto run when mariadb container start and $DATA_PATH_HOST/mariadb not exists.
|
||||||
###
|
###
|
||||||
### if your $DATA_SAVE_PATH/mariadb is exists and you do not want to delete it, you can run by manual execution:
|
### if your $DATA_PATH_HOST/mariadb is exists and you do not want to delete it, you can run by manual execution:
|
||||||
###
|
###
|
||||||
### docker-compose exec mariadb bash
|
### docker-compose exec mariadb bash
|
||||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM memcached:latest
|
FROM memcached:latest
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
CMD ["memcached"]
|
CMD ["memcached"]
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
FROM minio/minio
|
FROM minio/minio
|
||||||
|
|
||||||
MAINTAINER Thor Erik Lie <thor@thorerik.com>
|
LABEL maintainer="Thor Erik Lie <thor@thorerik.com>"
|
||||||
|
|
||||||
ENTRYPOINT ["minio", "server", "/export"]
|
ENTRYPOINT ["minio", "server", "/export"]
|
||||||
|
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>"
|
@ -1,6 +1,6 @@
|
|||||||
FROM mongo:latest
|
FROM mongo:latest
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf
|
#COPY mongo.conf /usr/local/etc/mongo/mongo.conf
|
||||||
|
|
||||||
|
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
|
@ -1,6 +1,6 @@
|
|||||||
FROM microsoft/mssql-server-linux
|
FROM microsoft/mssql-server-linux
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
# Create config directory
|
# Create config directory
|
||||||
# an set it as WORKDIR
|
# an set it as WORKDIR
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
ARG MYSQL_VERSION=8.0
|
ARG MYSQL_VERSION=latest
|
||||||
FROM mysql:${MYSQL_VERSION}
|
FROM mysql:${MYSQL_VERSION}
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# Set Timezone
|
# Set Timezone
|
||||||
@ -9,11 +9,9 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
|||||||
|
|
||||||
ARG TZ=UTC
|
ARG TZ=UTC
|
||||||
ENV TZ ${TZ}
|
ENV TZ ${TZ}
|
||||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
|
||||||
|
|
||||||
RUN chown -R mysql:root /var/lib/mysql/
|
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||||
|
|
||||||
ADD my.cnf /etc/mysql/conf.d/my.cnf
|
|
||||||
|
|
||||||
CMD ["mysqld"]
|
CMD ["mysqld"]
|
||||||
|
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
# Copy createdb.sql.example to createdb.sql
|
# Copy createdb.sql.example to createdb.sql
|
||||||
# then uncomment then set database name and username to create you need databases
|
# then uncomment then set database name and username to create you need databases
|
||||||
#
|
#
|
||||||
# example: .env MYSQL_USER=appuser and need db name is myshop_db
|
# example: .env MYSQL_USER=appuser and needed db name is myshop_db
|
||||||
#
|
#
|
||||||
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
|
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
|
||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# this sql script will auto run when the mysql container starts and the $DATA_SAVE_PATH/mysql not found.
|
# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found.
|
||||||
#
|
#
|
||||||
# if your $DATA_SAVE_PATH/mysql exists and you do not want to delete it, you can run by manual execution:
|
# if your $DATA_PATH_HOST/mysql exists and you do not want to delete it, you can run by manual execution:
|
||||||
#
|
#
|
||||||
# docker-compose exec mysql bash
|
# docker-compose exec mysql bash
|
||||||
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
[mysql]
|
[mysql]
|
||||||
|
|
||||||
[mysqld]
|
[mysqld]
|
||||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
|
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
|
||||||
character-set-server=utf8
|
character-set-server=utf8
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
FROM tpires/neo4j
|
FROM tpires/neo4j
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
VOLUME /var/lib/neo4j/data
|
VOLUME /var/lib/neo4j/data
|
||||||
|
|
||||||
|
@ -1,21 +1,32 @@
|
|||||||
FROM nginx:alpine
|
FROM nginx:alpine
|
||||||
|
|
||||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||||
|
|
||||||
ADD nginx.conf /etc/nginx/
|
COPY nginx.conf /etc/nginx/
|
||||||
|
|
||||||
ARG PHP_UPSTREAM=php-fpm
|
# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.
|
||||||
|
|
||||||
# fix a problem--#397, change application source from dl-cdn.alpinelinux.org to aliyun source.
|
ARG CHANGE_SOURCE=false
|
||||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories
|
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 \
|
RUN apk update \
|
||||||
&& apk upgrade \
|
&& apk upgrade \
|
||||||
|
&& apk add --no-cache openssl \
|
||||||
&& apk add --no-cache bash \
|
&& apk add --no-cache bash \
|
||||||
&& adduser -D -H -u 1000 -s /bin/bash www-data \
|
&& adduser -D -H -u 1000 -s /bin/bash www-data
|
||||||
&& rm /etc/nginx/conf.d/default.conf \
|
|
||||||
&& echo "upstream php-upstream { server ${PHP_UPSTREAM}:9000; }" > /etc/nginx/conf.d/upstream.conf
|
|
||||||
|
|
||||||
CMD ["nginx"]
|
ARG PHP_UPSTREAM_CONTAINER=php-fpm
|
||||||
|
ARG PHP_UPSTREAM_PORT=9000
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
ADD ./startup.sh /opt/startup.sh
|
||||||
|
RUN sed -i 's/\r//g' /opt/startup.sh
|
||||||
|
CMD ["/bin/bash", "/opt/startup.sh"]
|
||||||
|
|
||||||
EXPOSE 80 443
|
EXPOSE 80 443
|
||||||
|
@ -3,8 +3,14 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
server_name project-1.dev;
|
# For https
|
||||||
root /var/www/project-1/public;
|
# 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;
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
@ -18,6 +24,8 @@ server {
|
|||||||
fastcgi_buffers 16 16k;
|
fastcgi_buffers 16 16k;
|
||||||
fastcgi_buffer_size 32k;
|
fastcgi_buffer_size 32k;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
#fixes timeouts
|
||||||
|
fastcgi_read_timeout 600;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,4 +37,7 @@ server {
|
|||||||
root /var/www/letsencrypt/;
|
root /var/www/letsencrypt/;
|
||||||
log_not_found off;
|
log_not_found off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_log /var/log/nginx/app_error.log;
|
||||||
|
access_log /var/log/nginx/app_access.log;
|
||||||
}
|
}
|
@ -3,6 +3,12 @@ server {
|
|||||||
listen 80 default_server;
|
listen 80 default_server;
|
||||||
listen [::]:80 default_server ipv6only=on;
|
listen [::]:80 default_server ipv6only=on;
|
||||||
|
|
||||||
|
# For https
|
||||||
|
# listen 443 ssl default_server;
|
||||||
|
# listen [::]:443 ssl default_server ipv6only=on;
|
||||||
|
# ssl_certificate /etc/nginx/ssl/default.crt;
|
||||||
|
# ssl_certificate_key /etc/nginx/ssl/default.key;
|
||||||
|
|
||||||
server_name localhost;
|
server_name localhost;
|
||||||
root /var/www/public;
|
root /var/www/public;
|
||||||
index index.php index.html index.htm;
|
index index.php index.html index.htm;
|
||||||
@ -18,6 +24,8 @@ server {
|
|||||||
fastcgi_buffers 16 16k;
|
fastcgi_buffers 16 16k;
|
||||||
fastcgi_buffer_size 32k;
|
fastcgi_buffer_size 32k;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
#fixes timeouts
|
||||||
|
fastcgi_read_timeout 600;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,8 +3,14 @@ server {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
server_name project-2.dev;
|
# For https
|
||||||
root /var/www/project-2/public;
|
# 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;
|
index index.php index.html index.htm;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
@ -18,6 +24,8 @@ server {
|
|||||||
fastcgi_buffers 16 16k;
|
fastcgi_buffers 16 16k;
|
||||||
fastcgi_buffer_size 32k;
|
fastcgi_buffer_size 32k;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
#fixes timeouts
|
||||||
|
fastcgi_read_timeout 600;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,4 +37,7 @@ server {
|
|||||||
root /var/www/letsencrypt/;
|
root /var/www/letsencrypt/;
|
||||||
log_not_found off;
|
log_not_found off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_log /var/log/nginx/laravel_error.log;
|
||||||
|
access_log /var/log/nginx/laravel_access.log;
|
||||||
}
|
}
|
42
nginx/sites/symfony.conf.example
Normal file
42
nginx/sites/symfony.conf.example
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri @rewriteapp;
|
||||||
|
}
|
||||||
|
|
||||||
|
# For Symfony 3
|
||||||
|
location @rewriteapp {
|
||||||
|
rewrite ^(.*)$ /app.php/$1 last;
|
||||||
|
}
|
||||||
|
|
||||||
|
# For Symfony 4 config
|
||||||
|
# location @rewriteapp {
|
||||||
|
# rewrite ^(.*)$ /index.php/$1 last;
|
||||||
|
# }
|
||||||
|
|
||||||
|
location ~ ^/(app|app_dev|config|index)\.php(/|$) {
|
||||||
|
fastcgi_pass php-upstream;
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
#fixes timeouts
|
||||||
|
fastcgi_read_timeout 600;
|
||||||
|
fastcgi_param HTTPS off;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_log /var/log/nginx/symfony_error.log;
|
||||||
|
access_log /var/log/nginx/symfony_access.log;
|
||||||
|
}
|
3
nginx/ssl/.gitignore
vendored
Normal file
3
nginx/ssl/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.crt
|
||||||
|
*.csr
|
||||||
|
*.key
|
0
nginx/ssl/.gitkeep
Normal file
0
nginx/ssl/.gitkeep
Normal file
9
nginx/startup.sh
Normal file
9
nginx/startup.sh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [ ! -f /etc/nginx/ssl/default.crt ]; then
|
||||||
|
openssl genrsa -out "/etc/nginx/ssl/default.key" 2048
|
||||||
|
openssl req -new -key "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.csr" -subj "/CN=default/O=default/C=UK"
|
||||||
|
openssl x509 -req -days 365 -in "/etc/nginx/ssl/default.csr" -signkey "/etc/nginx/ssl/default.key" -out "/etc/nginx/ssl/default.crt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nginx
|
@ -1,10 +1,10 @@
|
|||||||
FROM percona:5.7
|
FROM percona:5.7
|
||||||
|
|
||||||
MAINTAINER DTUNES <diegotdai@gmai.com>
|
LABEL maintainer="DTUNES <diegotdai@gmai.com>"
|
||||||
|
|
||||||
RUN chown -R mysql:root /var/lib/mysql/
|
RUN chown -R mysql:root /var/lib/mysql/
|
||||||
|
|
||||||
ADD my.cnf /etc/mysql/conf.d/my.cnf
|
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||||
|
|
||||||
CMD ["mysqld"]
|
CMD ["mysqld"]
|
||||||
|
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||||
#
|
#
|
||||||
###
|
###
|
||||||
### this sql script is auto run when percona container start and $DATA_SAVE_PATH/percona not exists.
|
### this sql script is auto run when percona container start and $DATA_PATH_HOST/percona not exists.
|
||||||
###
|
###
|
||||||
### if your $DATA_SAVE_PATH/percona is exists and you do not want to delete it, you can run by manual execution:
|
### if your $DATA_PATH_HOST/percona is exists and you do not want to delete it, you can run by manual execution:
|
||||||
###
|
###
|
||||||
### docker-compose exec percona bash
|
### docker-compose exec percona bash
|
||||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
FROM chorss/docker-pgadmin4
|
FROM fenglc/pgadmin4:alpine
|
||||||
|
|
||||||
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
|
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
|
EXPOSE 5050
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user