Compare commits
571 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 | |||
d32cfb31b1 | |||
e671f4c929 | |||
aef2769e60 | |||
63816ab7d6 | |||
e7a16bb98e | |||
e496a82150 | |||
f258b38a18 | |||
a80fb99d21 | |||
6b0ee10988 | |||
1e2d368e43 | |||
829a5b5acf | |||
112e31a933 | |||
8af22b5b37 | |||
7029118f05 | |||
a1f8ef9614 | |||
97d198e967 | |||
722e73a3e6 | |||
1d2f385586 | |||
7b180524e3 | |||
a670dd91cd | |||
a0f1d39ce4 | |||
6bed8d14f1 | |||
e26ff8bb1e | |||
7fdda613a5 | |||
b7d3691c8d | |||
b0a6f2d689 | |||
8e20ec7617 | |||
a38cecef92 | |||
3bf572b7a4 | |||
2acc9f5d6f | |||
abae2dc09e | |||
407fb7a395 | |||
0c1b6ba9bf | |||
855e2a47b5 | |||
988bbf7bde | |||
ef7f251654 | |||
3d29c62bfb | |||
3e5d1d919a | |||
a38794ebcc | |||
56ca814ebb | |||
c17abbea6e | |||
0d5080d6bb | |||
e9a01c0174 | |||
5ea7b98db8 | |||
5eae7f3006 | |||
d83c9be2ea | |||
9585a4a7ab | |||
42fc8b7b57 | |||
0aa63c40f8 | |||
f59b9ebda6 | |||
b2c6e53bfa | |||
9970a00533 | |||
3752f48249 | |||
0baf791728 | |||
11687ffd36 | |||
aa22f5d648 | |||
00a38fe274 | |||
fe096ce282 | |||
b4ca9c5596 | |||
d85b76f0d1 | |||
f2a9712041 | |||
09bf0566af | |||
b8c5163c03 | |||
9dda2f6b9f | |||
ca5a1ee674 | |||
0e93477db0 | |||
7765df1076 | |||
fe38f0c2ff | |||
7ec8b8846e | |||
422d6d8dd0 | |||
d021777b06 | |||
f2f665dc08 | |||
02e2454c79 | |||
9d2be424de | |||
bf60f7520b | |||
916e9f38f3 | |||
ebc24ced66 | |||
3e59a2a813 | |||
50834268a7 | |||
007017a2a7 | |||
094aa9beb1 | |||
19f9b25a46 | |||
bc1c957f47 | |||
bbbd247653 | |||
cbfd160cbf | |||
bf691337f1 | |||
eefd04dbfc | |||
a657dce572 | |||
d616545268 | |||
57ecd6e515 | |||
025a339062 | |||
5b5ba53112 | |||
bd87a26db1 | |||
c0283da6ee | |||
e372d624a6 | |||
db6c6e7e0f |
46
.github/CODE_OF_CONDUCT.md
vendored
Normal file
46
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at mahmoud@zalt.me. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
3
.github/CONTRIBUTING.md
vendored
Normal file
3
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
### First off, thanks for taking the time to contribute!
|
||||
|
||||
For the contribution guide [click here](http://laradock.io/contributing/).
|
11
.github/ISSUE_TEMPLATE.md
vendored
11
.github/ISSUE_TEMPLATE.md
vendored
@ -5,22 +5,19 @@
|
||||
- System info disto/version:
|
||||
|
||||
### Issue:
|
||||
##### What seems to be going wrong?
|
||||
|
||||
<!--- What seems to be wrong? -->
|
||||
_____
|
||||
|
||||
### Expected behavior:
|
||||
##### What should be happening instead?
|
||||
|
||||
<!--- What should happen instead? -->
|
||||
_____
|
||||
|
||||
### Reproduce:
|
||||
##### How might we be able to reproduce the error?
|
||||
|
||||
<!--- How can we reproduce the error? -->
|
||||
_____
|
||||
|
||||
### Relevant Code:
|
||||
|
||||
```
|
||||
// place code here
|
||||
// place a code sample here
|
||||
```
|
||||
|
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,7 +1,7 @@
|
||||
### Thank you for contributing to Laradock.
|
||||
<!--- Thank you for contributing to Laradock -->
|
||||
|
||||
##### Make sure you completed the basic 3 steps below:
|
||||
##### I completed the 3 steps below:
|
||||
|
||||
- [] I've read the simple [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 enjoyed my time contributing and making developer's life easier :)
|
||||
|
10
README-zh.md → .github/README-zh.md
vendored
10
README-zh.md → .github/README-zh.md
vendored
@ -669,19 +669,19 @@ PHP-CLI 安装在 Workspace 容器,改变 PHP-CLI 版本你需要编辑 `works
|
||||
<a name="Use-custom-Domain"></a>
|
||||
### 使用自定义域名 (替换 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
|
||||
127.0.0.1 laravel.dev
|
||||
127.0.0.1 laravel.test
|
||||
```
|
||||
|
||||
2 - 打开你的浏览器访问 `{http://laravel.dev}`
|
||||
2 - 打开你的浏览器访问 `{http://laravel.test}`
|
||||
|
||||
你可以在 nginx 配置文件自定义服务器名称,如下:
|
||||
|
||||
```conf
|
||||
server_name laravel.dev;
|
||||
server_name laravel.test;
|
||||
```
|
||||
|
||||
<a name="Enable-Global-Composer-Build-Install"></a>
|
92
.github/README.md
vendored
Normal file
92
.github/README.md
vendored
Normal file
@ -0,0 +1,92 @@
|
||||
<p align="center">
|
||||
<img src="https://s19.postimg.org/jblfytw9f/laradock-logo.jpg" alt="Laradock Logo"/>
|
||||
</p>
|
||||
|
||||
<p align="center">A Docker PHP development environment that facilitates running PHP Apps on Docker</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://travis-ci.org/laradock/laradock"><img src="https://travis-ci.org/laradock/laradock.svg?branch=master" alt="Build status"></a>
|
||||
<a href="https://github.com/laradock/laradock/stargazers"><a href="#backers" alt="sponsors on Open Collective"><img src="https://opencollective.com/laradock/backers/badge.svg" /></a> <a href="#sponsors" alt="Sponsors on Open Collective"><img src="https://opencollective.com/laradock/sponsors/badge.svg" /></a> <img src="https://img.shields.io/github/stars/laradock/laradock.svg" alt="GitHub stars"></a>
|
||||
<a href="https://github.com/laradock/laradock/network"><img src="https://img.shields.io/github/forks/laradock/laradock.svg" alt="GitHub forks"></a>
|
||||
<a href="https://github.com/laradock/laradock/issues"><img src="https://img.shields.io/github/issues/laradock/laradock.svg" alt="GitHub issues"></a>
|
||||
<a href="https://raw.githubusercontent.com/laradock/laradock/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="GitHub license"></a>
|
||||
<a href="http://laradock.io/contributing"><img src="https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat" alt="contributions welcome"></a>
|
||||
</p>
|
||||
|
||||
<h4 align="center" style="color:#7d58c2">Use Docker First And Learn About It Later</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://zalt.me"><img src="http://forthebadge.com/images/badges/built-by-developers.svg" alt="forthebadge" width="240" ></a>
|
||||
</p>
|
||||
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<a href="http://laradock.io">
|
||||
<img src="https://s19.postimg.org/ecnn9vdw3/Screen_Shot_2017-08-01_at_5.08.54_AM.png" width=300px" alt="Laradock Docs"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
## Sponsors
|
||||
|
||||
Support this project by becoming a sponsor.
|
||||
|
||||
Your logo will show up on the [github repository](https://github.com/laradock/laradock/) index page and the [documentation](http://laradock.io/) main page, with a link to your website. [[Become a sponsor](https://opencollective.com/laradock#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/laradock/sponsor/0/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/0/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/1/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/1/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/2/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/2/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/3/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/3/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/4/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/4/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/5/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/5/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/6/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/7/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/8/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/laradock/sponsor/9/website" target="_blank"><img src="https://opencollective.com/laradock/sponsor/9/avatar.svg"></a>
|
||||
|
||||
|
||||
## Contributors
|
||||
|
||||
#### Core contributors:
|
||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) @mahmoudz | [Twitter](https://twitter.com/Mahmoud_Zalt) | [Site](http://zalt.me)
|
||||
- [Bo-Yi Wu](https://github.com/appleboy) @appleboy | [Twitter](https://twitter.com/appleboy)
|
||||
- [Philippe Trépanier](https://github.com/philtrep) @philtrep
|
||||
- [Mike Erickson](https://github.com/mikeerickson) @mikeerickson
|
||||
- [Dwi Fahni Denni](https://github.com/zeroc0d3) @zeroc0d3
|
||||
- [Thor Erik](https://github.com/thorerik) @thorerik
|
||||
- [Winfried van Loon](https://github.com/winfried-van-loon) @winfried-van-loon
|
||||
- [TJ Miller](https://github.com/sixlive) @sixlive
|
||||
- [Yu-Lung Shao (Allen)](https://github.com/bestlong) @bestlong
|
||||
- [Milan Urukalo](https://github.com/urukalo) @urukalo
|
||||
- [Vince Chu](https://github.com/vwchu) @vwchu
|
||||
- [Huadong Zuo](https://github.com/zuohuadong) @zuohuadong
|
||||
- Join us, by submitting 20 useful PR's.
|
||||
|
||||
#### Awesome contributors:
|
||||
|
||||
<a href="https://github.com/laradock/laradock/graphs/contributors"><img src="https://opencollective.com/laradock/contributors.svg?width=890" /></a>
|
||||
|
||||
|
||||
## Donations
|
||||
|
||||
> Help keeping the project development going, by [contributing](http://laradock.io/contributing) or donating a little.
|
||||
> Thanks in advance.
|
||||
|
||||
Donate directly via [Paypal](https://www.paypal.me/mzalt)
|
||||
|
||||
[](https://www.paypal.me/mzalt)
|
||||
|
||||
or become a backer on [Open Collective](https://opencollective.com/laradock#backer)
|
||||
|
||||
<a href="https://opencollective.com/laradock#backers" target="_blank"><img src="https://opencollective.com/laradock/backers.svg?width=890"></a>
|
||||
|
||||
or show your support via [Beerpay](https://beerpay.io/laradock/laradock)
|
||||
|
||||
[](https://beerpay.io/laradock/laradock)
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE)
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -2,4 +2,6 @@
|
||||
/logs
|
||||
/data
|
||||
.env
|
||||
/.project
|
||||
/.project
|
||||
.docker-sync
|
||||
/jenkins/jenkins_home
|
||||
|
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
|
||||
|
||||
env:
|
||||
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"
|
||||
|
||||
matrix:
|
||||
- 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
|
||||
before_install:
|
||||
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
|
||||
|
@ -13,8 +13,8 @@ If you have questions about how to use Laradock, please direct your questions to
|
||||
|
||||
## Found an Issue
|
||||
|
||||
If 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).
|
||||
If you have an issue or you found a typo in the documentation, you can help us by
|
||||
opening an [Issue](https://github.com/laradock/laradock/issues).
|
||||
|
||||
**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.
|
||||
|
||||
*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.*
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
* Forke the repo and clone the code.
|
||||
* Fork the repo and clone the code.
|
||||
|
||||
* 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.
|
||||
|
||||
* **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.
|
||||
|
||||
@ -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)
|
||||
|
||||
* Forke the repo and clone the code.
|
||||
* Fork the repo and clone the code.
|
||||
|
||||
* 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..
|
||||
|
||||
*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.
|
||||
|
||||
|
@ -5,6 +5,8 @@ weight: 3
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="List-current-running-Containers"></a>
|
||||
## List current running Containers
|
||||
```bash
|
||||
@ -153,28 +155,8 @@ You might use the `--no-cache` option if you want full rebuilding (`docker-compo
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Docker-Sync"></a>
|
||||
|
||||
## Docker-Sync
|
||||
|
||||
Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
|
||||
|
||||
The problem originates in bind-mount performance on MacOS. Docker for Mac uses osxfs by default. This is not without reason, it has [a lot of advantages](https://docs.docker.com/docker-for-mac/osxfs/).
|
||||
|
||||
Solutions to resolve this issue are easily installed however, we're hoping it'll be fixed by Docker themselves over time. They are currently [adding "cached and delegated" options](https://github.com/docker/for-mac/issues/77#issuecomment-283996750), which is partly available for Docker Edge.
|
||||
|
||||
Options are [to switch over to NFS](https://github.com/IFSight/d4m-nfs) which is the simplest. The fastest option is [Docker-Sync "native"](https://github.com/EugenMayer/docker-sync) which is still quite easy to install.
|
||||
|
||||
Clone [this repo](https://github.com/EugenMayer/docker-sync-boilerplate) to your machine, copy `default/docker-sync.yml` to your Laradock directory and run `docker-sync-stack start`. Be sure to use `docker-sync-stack clean` to stop and `docker-compose build` to rebuild. More information can be found [in the Docker-sync docs](https://github.com/EugenMayer/docker-sync).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Add-Docker-Images"></a>
|
||||
|
||||
## Add more Software (Docker Images)
|
||||
|
||||
To add an image (software), just edit the `docker-compose.yml` and add your container details, to do so you need to be familiar with the [docker compose file syntax](https://docs.docker.com/compose/compose-file/).
|
||||
@ -192,14 +174,17 @@ The NGINX Log file is stored in the `logs/nginx` directory.
|
||||
However to view the logs of all the other containers (MySQL, PHP-FPM,...) you can run this:
|
||||
|
||||
```bash
|
||||
docker logs {container-name}
|
||||
docker-compose logs {container-name}
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose logs -f {container-name}
|
||||
```
|
||||
|
||||
More [options](https://docs.docker.com/compose/reference/logs/)
|
||||
|
||||
```bash
|
||||
docker logs -f {container-name}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -216,7 +201,7 @@ docker logs -f {container-name}
|
||||
<a name="Install-PHP-Extensions"></a>
|
||||
## Install PHP Extensions
|
||||
|
||||
Before installing PHP extensions, you have to decide whether you need for the `FPM` or `CLI` because each lives on a different container, if you need it for both you have to edit both containers.
|
||||
Before installing PHP extensions, you have to decide first whether you need `FPM` or `CLI`, because each of them has it's own different container, if you need it for both, you have to edit both containers.
|
||||
|
||||
The PHP-FPM extensions should be installed in `php-fpm/Dockerfile-XX`. *(replace XX with your default PHP version number)*.
|
||||
<br>
|
||||
@ -230,28 +215,24 @@ The PHP-CLI extensions should be installed in `workspace/Dockerfile`.
|
||||
<br>
|
||||
<a name="Change-the-PHP-FPM-Version"></a>
|
||||
## Change the (PHP-FPM) Version
|
||||
By default **PHP-FPM 7.0** is running.
|
||||
By default the latest stable PHP versin is configured to run.
|
||||
|
||||
>The PHP-FPM is responsible of serving your application code, you don't have to change the PHP-CLI version if you are planning to run your application on different PHP-FPM version.
|
||||
|
||||
|
||||
### A) Switch from PHP `7.0` to PHP `5.6`
|
||||
### A) Switch from PHP `7.2` to PHP `5.6`
|
||||
|
||||
1 - Open the `docker-compose.yml`.
|
||||
1 - Open the `.env`.
|
||||
|
||||
2 - Search for `Dockerfile-70` in the PHP container section.
|
||||
2 - Search for `PHP_VERSION`.
|
||||
|
||||
3 - Change the version number, by replacing `Dockerfile-70` with `Dockerfile-56`, like this:
|
||||
3 - Set the desired version number:
|
||||
|
||||
```yml
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70
|
||||
...
|
||||
```dotenv
|
||||
PHP_VERSION=5.6
|
||||
```
|
||||
|
||||
4 - Finally rebuild the container
|
||||
4 - Finally rebuild the image
|
||||
|
||||
```bash
|
||||
docker-compose build php-fpm
|
||||
@ -260,25 +241,6 @@ docker-compose build php-fpm
|
||||
> For more details about the PHP base image, visit the [official PHP docker images](https://hub.docker.com/_/php/).
|
||||
|
||||
|
||||
### B) Switch from PHP `7.0` or `5.6` to PHP `5.5`
|
||||
|
||||
We do not natively support PHP 5.5 anymore, but you can get it in few steps:
|
||||
|
||||
1 - Clone `https://github.com/laradock/php-fpm`.
|
||||
|
||||
3 - Rename `Dockerfile-56` to `Dockerfile-55`.
|
||||
|
||||
3 - Edit the file `FROM php:5.6-fpm` to `FROM php:5.5-fpm`.
|
||||
|
||||
4 - Build an image from `Dockerfile-55`.
|
||||
|
||||
5 - Open the `docker-compose.yml` file.
|
||||
|
||||
6 - Point `php-fpm` to your `Dockerfile-55` file.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
@ -288,11 +250,23 @@ By default **PHP-CLI 7.0** is running.
|
||||
|
||||
>Note: it's not very essential to edit the PHP-CLI version. The PHP-CLI is only used for the Artisan Commands & Composer. It doesn't serve your Application code, this is the PHP-FPM job.
|
||||
|
||||
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to edit the `workspace/Dockerfile`.
|
||||
The PHP-CLI is installed in the Workspace container. To change the PHP-CLI version you need to simply change the `PHP_VERSION` in te .env file as follow:
|
||||
|
||||
Right now you have to manually edit the `Dockerfile` or create a new one like it's done for the PHP-FPM. (consider contributing).
|
||||
1 - Open the `.env`.
|
||||
|
||||
2 - Search for `PHP_VERSION`.
|
||||
|
||||
3 - Set the desired version number:
|
||||
|
||||
```dotenv
|
||||
PHP_VERSION=7.2
|
||||
```
|
||||
|
||||
4 - Finally rebuild the image
|
||||
|
||||
```bash
|
||||
docker-compose build workspace
|
||||
```
|
||||
|
||||
|
||||
|
||||
@ -303,48 +277,35 @@ Right now you have to manually edit the `Dockerfile` or create a new one like it
|
||||
|
||||
1 - First install `xDebug` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_XDEBUG` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_XDEBUG` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_XDEBUG` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_XDEBUG` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_XDEBUG=true
|
||||
...
|
||||
```
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
3 - Open `laradock/workspace/xdebug.ini` and/or `laradock/php-fpm/xdebug.ini` and enable at least the following configurations:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
xdebug.remote_connect_back=1
|
||||
```
|
||||
|
||||
For information on how to configure xDebug with your IDE and work it out, check this [Repository](https://github.com/LarryEitel/laravel-laradock-phpstorm).
|
||||
For information on how to configure xDebug with your IDE and work it out, check this [Repository](https://github.com/LarryEitel/laravel-laradock-phpstorm) or follow up on the next section if you use linux and PhpStorm.
|
||||
|
||||
|
||||
<a name="Setup remote debugging for PhpStorm on Linux"></a>
|
||||
## Setup remote debugging for PhpStorm on Linux
|
||||
|
||||
- Make sure you have followed the steps above in the [Install Xdebug section](http://laradock.io/documentation/#install-xdebug).
|
||||
|
||||
- Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration).
|
||||
|
||||
.
|
||||
|
||||
- Create a server with name `laradock` (matches **PHP_IDE_CONFIG** key in environment file) and make sure to map project root path with server correctly.
|
||||
|
||||
.
|
||||
|
||||
- Start listening for debug connections, place a breakpoint and you are good to go !
|
||||
|
||||
|
||||
<br>
|
||||
@ -370,24 +331,13 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
|
||||
<a name="Install-Deployer"></a>
|
||||
## Install Deployer (Deployment tool for PHP)
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
<br>
|
||||
2 - Search for the `INSTALL_DEPLOYER` argument under the Workspace Container
|
||||
2 - Search for the `WORKSPACE_INSTALL_DEPLOYER` argument under the Workspace Container
|
||||
<br>
|
||||
3 - Set it to `true`
|
||||
<br>
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_DEPLOYER=true
|
||||
...
|
||||
```
|
||||
|
||||
4 - Re-build the containers `docker-compose build workspace`
|
||||
|
||||
[**Deployer Documentation Here**](https://deployer.org/docs)
|
||||
@ -434,15 +384,35 @@ To learn more about how Docker publishes ports, please read [this excellent post
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Jenkins"></a>
|
||||
## Use Jenkins
|
||||
|
||||
1) Boot the container `docker-compose up -d jenkins`. To enter the container type `docker-compose exec jenkins bash`.
|
||||
|
||||
2) Go to `http://localhost:8090/` (if you didn't change your default port mapping)
|
||||
|
||||
3) Authenticate from the web app.
|
||||
|
||||
- Default username is `admin`.
|
||||
- Default password is `docker-compose exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword`.
|
||||
|
||||
(To enter container as root type `docker-compose exec --user root jenkins bash`).
|
||||
|
||||
4) Install some plugins.
|
||||
|
||||
5) Create your first Admin user, or continue as Admin.
|
||||
|
||||
Note: to add user go to `http://localhost:8090/securityRealm/addUser` and to restart it from the web app visit `http://localhost:8090/restart`.
|
||||
|
||||
You may wanna change the default security configuration, so go to `http://localhost:8090/configureSecurity/` under Authorization and choosing "Anyone can do anything" or "Project-based Matrix Authorization Strategy" or anything else.
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Laravel"></a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a name="Install-Laravel"></a>
|
||||
## Install Laravel from a Docker Container
|
||||
|
||||
@ -461,18 +431,14 @@ composer create-project laravel/laravel my-cool-app "5.2.*"
|
||||
For more about the Laravel installation click [here](https://laravel.com/docs/master#installing-laravel).
|
||||
|
||||
|
||||
3 - Edit `docker-compose.yml` to Map the new application path:
|
||||
3 - Edit `.env` to Map the new application path:
|
||||
|
||||
By default, Laradock assumes the Laravel application is living in the parent directory of the laradock folder.
|
||||
|
||||
Since the new Laravel application is in the `my-cool-app` folder, we need to replace `../:/var/www` with `../my-cool-app/:/var/www`, as follow:
|
||||
|
||||
```yaml
|
||||
application:
|
||||
image: tianon/true
|
||||
volumes:
|
||||
- ../my-cool-app/:/var/www
|
||||
...
|
||||
```dotenv
|
||||
APP_CODE_PATH_HOST=../my-cool-app/
|
||||
```
|
||||
4 - Go to that folder and start working..
|
||||
|
||||
@ -544,11 +510,17 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
|
||||
```yaml
|
||||
php-worker:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
dockerfile: Dockerfile-70 # or Dockerfile-56, choose your PHP-FPM container setting
|
||||
context: ./php-worker
|
||||
args:
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
||||
volumes_from:
|
||||
- applications
|
||||
command: php artisan queue:work
|
||||
depends_on:
|
||||
- workspace
|
||||
extra_hosts:
|
||||
- "dockerhost:${DOCKER_HOST_IP}"
|
||||
networks:
|
||||
- backend
|
||||
```
|
||||
2 - Start everything up
|
||||
|
||||
@ -570,13 +542,15 @@ docker-compose up -d php-worker
|
||||
docker-compose up -d redis
|
||||
```
|
||||
|
||||
> To execute redis commands, enter the redis container first `docker-compose exec redis bash` then enter the `redis-cli`.
|
||||
|
||||
2 - Open your Laravel's `.env` file and set the `REDIS_HOST` to `redis`
|
||||
|
||||
```env
|
||||
REDIS_HOST=redis
|
||||
```
|
||||
|
||||
If you don't find the `REDIS_HOST` variable in your `.env` file. Go to the database configuration file `config/database.php` and replace the default `127.0.0.1` IP with `redis` for Redis like this:
|
||||
If you're using Laravel, and you don't find the `REDIS_HOST` variable in your `.env` file. Go to the database configuration file `config/database.php` and replace the default `127.0.0.1` IP with `redis` for Redis like this:
|
||||
|
||||
```php
|
||||
'redis' => [
|
||||
@ -619,33 +593,16 @@ composer require predis/predis:^1.0
|
||||
|
||||
1 - First install `mongo` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_MONGO` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_MONGO` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_MONGO` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_MONGO` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_MONGO=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_MONGO=true
|
||||
...
|
||||
```
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
|
||||
@ -734,7 +691,7 @@ docker-compose up -d mariadb phpmyadmin
|
||||
1 - Run the Adminer Container (`adminer`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d adminer
|
||||
docker-compose up -d adminer
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **8080**: `http://localhost:8080`
|
||||
@ -744,6 +701,21 @@ docker-compose up -d adminer
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Portainer"></a>
|
||||
## Use Portainer
|
||||
|
||||
1 - Run the Portainer Container (`portainer`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d portainer
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **9010**: `http://localhost:9010`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-pgAdmin"></a>
|
||||
@ -792,6 +764,8 @@ docker-compose up -d beanstalkd-console
|
||||
|
||||
2 - Open your browser and visit `http://localhost:2080/`
|
||||
|
||||
_Note: You can customize the port on which beanstalkd console is listening by changing `BEANSTALKD_CONSOLE_HOST_PORT` in `.env`. The default value is *2080*._
|
||||
|
||||
3 - Add the server
|
||||
|
||||
- Host: beanstalkd
|
||||
@ -816,19 +790,20 @@ docker-compose up -d elasticsearch
|
||||
|
||||
2 - Open your browser and visit the localhost on port **9200**: `http://localhost:9200`
|
||||
|
||||
> The default username is `elastic` and the default password is `changeme`.
|
||||
|
||||
### Install ElasticSearch Plugin
|
||||
|
||||
1 - Install the ElasticSearch plugin like [delete-by-query](https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html).
|
||||
1 - Install an ElasticSearch plugin.
|
||||
|
||||
```bash
|
||||
docker exec {container-name} /usr/share/elasticsearch/bin/plugin install delete-by-query
|
||||
docker-compose exec elasticsearch /usr/share/elasticsearch/bin/plugin install {plugin-name}
|
||||
```
|
||||
|
||||
2 - Restart elasticsearch container
|
||||
|
||||
```bash
|
||||
docker restart {container-name}
|
||||
docker-compose restart elasticsearch
|
||||
```
|
||||
|
||||
|
||||
@ -925,6 +900,44 @@ docker-compose up -d minio
|
||||
```
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-AWS"></a>
|
||||
## Use AWS
|
||||
|
||||
1 - Configure AWS:
|
||||
- make sure to add your SSH keys in aws/ssh_keys folder
|
||||
|
||||
2 - Run the Aws Container (`aws`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d aws
|
||||
```
|
||||
|
||||
3 - Access the aws container with `docker-compose exec aws bash`
|
||||
|
||||
4 - To start using eb cli inside the container, initialize your project first by doing 'eb init'. Read the [aws eb cli](http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html) docs for more details.
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Grafana"></a>
|
||||
## Use Grafana
|
||||
|
||||
1 - Configure Grafana: Change Port using `GRAFANA_PORT` if you wish to. Default is port 3000.
|
||||
|
||||
2 - Run the Grafana Container (`grafana`) with the `docker-compose up`command:
|
||||
|
||||
```bash
|
||||
docker-compose up -d grafana
|
||||
```
|
||||
|
||||
3 - Open your browser and visit the localhost on port **3000** at the following URL: `http://localhost:3000`
|
||||
|
||||
4 - Login using the credentials User = `admin`, Password = `admin`. Change the password in the web interface if you want to.
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="CodeIgniter"></a>
|
||||
|
||||
@ -946,9 +959,18 @@ To install CodeIgniter 3 on Laradock all you have to do is the following simple
|
||||
3 - Re-build your PHP-FPM Container `docker-compose build php-fpm`.
|
||||
|
||||
|
||||
<a name="Install-Symfony"></a>
|
||||
## Install Symfony
|
||||
|
||||
1 - Open the `.env` file and set `WORKSPACE_INSTALL_SYMFONY` to `true`.
|
||||
|
||||
2 - Run `docker-compose build workspace`, after the step above.
|
||||
|
||||
3 - The NGINX sites include a default config file for your Symfony project `symfony.conf.example`, so edit it and make sure the `root` is pointing to your project `web` directory.
|
||||
|
||||
4 - Run `docker-compose restart` if the container was already running, before the step above.
|
||||
|
||||
5 - Visit `symfony.test`
|
||||
|
||||
<br>
|
||||
<a name="Misc"></a>
|
||||
@ -998,6 +1020,8 @@ You can add your cron jobs to `workspace/crontab/root` after the `php artisan` l
|
||||
|
||||
Make sure you [change the timezone](#Change-the-timezone) if you don't want to use the default (UTC).
|
||||
|
||||
If you are on Windows, verify that the line endings for this file are LF only, otherwise the cron jobs will silently fail.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1018,6 +1042,34 @@ To change the default forwarded port for ssh:
|
||||
...
|
||||
```
|
||||
|
||||
Then login using:
|
||||
|
||||
```bash
|
||||
ssh -o PasswordAuthentication=no \
|
||||
-o StrictHostKeyChecking=no \
|
||||
-o UserKnownHostsFile=/dev/null \
|
||||
-p 2222 \
|
||||
-i workspace/insecure_id_rsa \
|
||||
laradock@localhost
|
||||
```
|
||||
|
||||
To login as root, replace laradock@locahost with root@localhost.
|
||||
|
||||
<br>
|
||||
<a name="Change-the-MySQL-Version"></a>
|
||||
## Change the (MySQL) Version
|
||||
By default **MySQL 8.0** is running.
|
||||
|
||||
MySQL 8.0 is a development release. You may prefer to use the latest stable version, or an even older release. If you wish, you can change the MySQL image that is used.
|
||||
|
||||
Open up your .env file and set the `MYSQL_VERSION` variable to the version you would like to install.
|
||||
|
||||
```
|
||||
MYSQL_VERSION=5.7
|
||||
```
|
||||
|
||||
Available versions are: 5.5, 5.6, 5.7, 8.0, or latest. See https://store.docker.com/images/mysql for more information.
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1057,6 +1109,19 @@ The default username and password for the root MySQL user are `root` and `root `
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Create-Multiple-Databases"></a>
|
||||
## Create Multiple Databases (MySQL)
|
||||
|
||||
Create `createdb.sql` from `mysql/docker-entrypoint-initdb.d/createdb.sql.example` in `mysql/docker-entrypoint-initdb.d/*` and add your SQL syntax as follow:
|
||||
|
||||
```sql
|
||||
CREATE DATABASE IF NOT EXISTS `your_db_1` COLLATE 'utf8_general_ci' ;
|
||||
GRANT ALL ON `your_db_1`.* TO 'mysql_user'@'%' ;
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Change-MySQL-port"></a>
|
||||
@ -1080,21 +1145,21 @@ If you need <a href="#MySQL-access-from-host">MySQL access from your host</a>, d
|
||||
<a name="Use-custom-Domain"></a>
|
||||
## Use custom Domain (instead of the Docker IP)
|
||||
|
||||
Assuming your custom domain is `laravel.dev`
|
||||
Assuming your custom domain is `laravel.test`
|
||||
|
||||
1 - Open your `/etc/hosts` file and map your localhost address `127.0.0.1` to the `laravel.dev` domain, by adding the following:
|
||||
1 - Open your `/etc/hosts` file and map your localhost address `127.0.0.1` to the `laravel.test` domain, by adding the following:
|
||||
|
||||
```bash
|
||||
127.0.0.1 laravel.dev
|
||||
127.0.0.1 laravel.test
|
||||
```
|
||||
|
||||
2 - Open your browser and visit `{http://laravel.dev}`
|
||||
2 - Open your browser and visit `{http://laravel.test}`
|
||||
|
||||
|
||||
Optionally you can define the server name in the NGINX configuration file, like this:
|
||||
|
||||
```conf
|
||||
server_name laravel.dev;
|
||||
server_name laravel.test;
|
||||
```
|
||||
|
||||
|
||||
@ -1108,20 +1173,10 @@ server_name laravel.dev;
|
||||
|
||||
Enabling Global Composer Install during the build for the container allows you to get your composer requirements installed and available in the container after the build is done.
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `COMPOSER_GLOBAL_INSTALL` argument under the Workspace Container and set it to `true`
|
||||
2 - Search for the `WORKSPACE_COMPOSER_GLOBAL_INSTALL` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- COMPOSER_GLOBAL_INSTALL=true
|
||||
...
|
||||
```
|
||||
3 - Now add your dependencies to `workspace/composer.json`
|
||||
|
||||
4 - Re-build the Workspace Container `docker-compose build workspace`
|
||||
@ -1160,20 +1215,9 @@ c - Re-build the Workspace Container `docker-compose build workspace`
|
||||
|
||||
To install NVM and NodeJS in the Workspace container
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_NODE` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_NODE=true
|
||||
...
|
||||
```
|
||||
2 - Search for the `WORKSPACE_INSTALL_NODE` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@ -1188,21 +1232,61 @@ It should be like this:
|
||||
|
||||
Yarn is a new package manager for JavaScript. It is so faster than npm, which you can find [here](http://yarnpkg.com/en/compare).To install NodeJS and [Yarn](https://yarnpkg.com/) in the Workspace container:
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_NODE` and `INSTALL_YARN` argument under the Workspace Container and set it to `true`
|
||||
2 - Search for the `WORKSPACE_INSTALL_NODE` and `WORKSPACE_INSTALL_YARN` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_NODE=true
|
||||
- INSTALL_YARN=true
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-GULP"></a>
|
||||
## Install NPM GULP toolkit
|
||||
|
||||
To install NPM GULP toolkit in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_GULP` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-BOWER"></a>
|
||||
## Install NPM BOWER package manager
|
||||
|
||||
To install NPM BOWER package manager in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_BOWER` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Install-NPM-VUE-CLI"></a>
|
||||
## Install NPM VUE CLI
|
||||
|
||||
To install NPM VUE CLI in the Workspace container
|
||||
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `WORKSPACE_INSTALL_NPM_VUE_CLI` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@ -1217,20 +1301,9 @@ It should be like this:
|
||||
|
||||
Linuxbrew is a package manager for Linux. It is the Linux version of MacOS Homebrew and can be found [here](http://linuxbrew.sh). To install Linuxbrew in the Workspace container:
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
|
||||
2 - Search for the `INSTALL_LINUXBREW` argument under the Workspace Container and set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_LINUXBREW=true
|
||||
...
|
||||
```
|
||||
2 - Search for the `WORKSPACE_INSTALL_LINUXBREW` argument under the Workspace Container and set it to `true`
|
||||
|
||||
3 - Re-build the container `docker-compose build workspace`
|
||||
|
||||
@ -1256,32 +1329,16 @@ You are free to modify the `aliases.sh` as you see fit, adding your own aliases
|
||||
|
||||
1 - First install `aerospike` in the Workspace and the PHP-FPM Containers:
|
||||
<br>
|
||||
a) open the `docker-compose.yml` file
|
||||
a) open the `.env` file
|
||||
<br>
|
||||
b) search for the `INSTALL_AEROSPIKE` argument under the Workspace Container
|
||||
b) search for the `WORKSPACE_INSTALL_AEROSPIKE` argument under the Workspace Container
|
||||
<br>
|
||||
c) set it to `true`
|
||||
<br>
|
||||
d) search for the `INSTALL_AEROSPIKE` argument under the PHP-FPM Container
|
||||
d) search for the `PHP_FPM_INSTALL_AEROSPIKE` argument under the PHP-FPM Container
|
||||
<br>
|
||||
e) set it to `true`
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_AEROSPIKE=true
|
||||
...
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- INSTALL_AEROSPIKE=true
|
||||
...
|
||||
```
|
||||
<br>
|
||||
|
||||
2 - Re-build the containers `docker-compose build workspace php-fpm`
|
||||
|
||||
@ -1294,24 +1351,13 @@ It should be like this:
|
||||
<a name="Install-Laravel-Envoy"></a>
|
||||
## Install Laravel Envoy (Envoy Task Runner)
|
||||
|
||||
1 - Open the `docker-compose.yml` file
|
||||
1 - Open the `.env` file
|
||||
<br>
|
||||
2 - Search for the `INSTALL_LARAVEL_ENVOY` argument under the Workspace Container
|
||||
2 - Search for the `WORKSPACE_INSTALL_LARAVEL_ENVOY` argument under the Workspace Container
|
||||
<br>
|
||||
3 - Set it to `true`
|
||||
<br>
|
||||
|
||||
It should be like this:
|
||||
|
||||
```yml
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- INSTALL_LARAVEL_ENVOY=true
|
||||
...
|
||||
```
|
||||
|
||||
4 - Re-build the containers `docker-compose build workspace`
|
||||
|
||||
[**Laravel Envoy Documentation Here**](https://laravel.com/docs/5.3/envoy)
|
||||
@ -1377,7 +1423,11 @@ Moving from Docker Toolbox (VirtualBox) to Docker Native (for Mac/Windows). Requ
|
||||
<a name="Speed-MacOS"></a>
|
||||
## Improve speed on MacOS
|
||||
|
||||
Sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
|
||||
Docker on the Mac [is slow](https://github.com/docker/for-mac/issues/77), at the time of writing. Especially for larger projects, this can be a problem. The problem is [older than March 2016](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076) - as it's a such a long-running issue, we're including it in the docs here.
|
||||
|
||||
So since sharing code into Docker containers with osxfs have very poor performance compared to Linux. Likely there are some workarounds:
|
||||
|
||||
|
||||
|
||||
### Workaround A: using dinghy
|
||||
|
||||
@ -1397,9 +1447,101 @@ Quick Setup giude, (we recommend you check their docs)
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Docker-Sync"></a>
|
||||
### Workaround B: using d4m-nfs
|
||||
|
||||
You can use the d4m-nfs solution in 2 ways, the first is by using the built-in Laradock integration, and the second is using the tool separately. Below is show case of both methods:
|
||||
|
||||
|
||||
### B.1: using the built in d4m-nfs integration
|
||||
|
||||
In simple terms, docker-sync creates a docker container with a copy of all the application files that can be accessed very quickly from the other containers.
|
||||
On the other hand, docker-sync runs a process on the host machine that continuously tracks and updates files changes from the host to this intermediate container.
|
||||
|
||||
Out of the box, it comes pre-configured for OS X, but using it on Windows is very easy to set-up by modifying the `DOCKER_SYNC_STRATEGY` on the `.env`
|
||||
|
||||
#### Usage
|
||||
|
||||
Laradock comes with `sync.sh`, an optional bash script, that automates installing, running and stopping docker-sync. Note that to run the bash script you may need to change the permissions `chmod 755 sync.sh`
|
||||
|
||||
1) Configure your Laradock environment as you would normally do and test your application to make sure that your sites are running correctly.
|
||||
|
||||
2) Make sure to set `DOCKER_SYNC_STRATEGY` on the `.env`. Read the [syncing strategies](https://github.com/EugenMayer/docker-sync/wiki/8.-Strategies) for details.
|
||||
```
|
||||
# osx: 'native_osx' (default)
|
||||
# windows: 'unison'
|
||||
# linux: docker-sync not required
|
||||
|
||||
DOCKER_SYNC_STRATEGY=native_osx
|
||||
```
|
||||
|
||||
3) set `APP_CODE_PATH_CONTAINER=/var/www` to `APP_CODE_PATH_CONTAINER=/var/www:nocopy` in the .env file
|
||||
|
||||
4) Install the docker-sync gem on the host-machine:
|
||||
```bash
|
||||
./sync.sh install
|
||||
```
|
||||
5) Start docker-sync and the Laradock environment.
|
||||
Specify the services you want to run, as you would normally do with `docker-compose up`
|
||||
```bash
|
||||
./sync.sh up nginx mysql
|
||||
```
|
||||
Please note that the first time docker-sync runs, it will copy all the files to the intermediate container and that may take a very long time (15min+).
|
||||
6) To stop the environment and docker-sync do:
|
||||
```bash
|
||||
./sync.sh down
|
||||
```
|
||||
|
||||
#### Setting up Aliases (optional)
|
||||
|
||||
You may create bash profile aliases to avoid having to remember and type these commands for everyday development.
|
||||
Add the following lines to your `~/.bash_profile`:
|
||||
|
||||
```bash
|
||||
alias devup="cd /PATH_TO_LARADOCK/laradock; ./sync.sh up nginx mysql" #add your services
|
||||
alias devbash="cd /PATH_TO_LARADOCK/laradock; ./sync.sh bash"
|
||||
alias devdown="cd /PATH_TO_LARADOCK/laradock; ./sync.sh down"
|
||||
```
|
||||
|
||||
Now from any location on your machine, you can simply run `devup`, `devbash` and `devdown`.
|
||||
|
||||
|
||||
#### Additional Commands
|
||||
|
||||
Opening bash on the workspace container (to run artisan for example):
|
||||
```bash
|
||||
./sync.sh bash
|
||||
```
|
||||
Manually triggering the synchronization of the files:
|
||||
```bash
|
||||
./sync.sh sync
|
||||
```
|
||||
Removing and cleaning up the files and the docker-sync container. Use only if you want to rebuild or remove docker-sync completely. The files on the host will be kept untouched.
|
||||
```bash
|
||||
./sync.sh clean
|
||||
```
|
||||
|
||||
|
||||
#### Additional Notes
|
||||
|
||||
- You may run laradock with or without docker-sync at any time using with the same `.env` and `docker-compose.yml`, because the configuration is overridden automatically when docker-sync is used.
|
||||
- You may inspect the `sync.sh` script to learn each of the commands and even add custom ones.
|
||||
- If a container cannot access the files on docker-sync, you may need to set a user on the Dockerfile of that container with an id of 1000 (this is the UID that nginx and php-fpm have configured on laradock). Alternatively, you may change the permissions to 777, but this is **not** recommended.
|
||||
|
||||
Visit the [docker-sync documentation](https://github.com/EugenMayer/docker-sync/wiki) for more details.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
### B.2: using the d4m-nfs tool
|
||||
|
||||
[D4m-nfs](https://github.com/IFSight/d4m-nfs) automatically mount NFS volume instead of osxfs one.
|
||||
|
||||
1) Update the Docker [File Sharing] preferences:
|
||||
@ -1414,7 +1556,7 @@ Click on the Docker Icon > Preferences > (remove everything form the list except
|
||||
git clone https://github.com/IFSight/d4m-nfs ~/d4m-nfs
|
||||
```
|
||||
|
||||
4) Create (or edit) the file `~/d4m-nfs/etc/d4m-nfs-mounts.txt`, and write the follwing configuration in it:
|
||||
4) Create (or edit) the file `~/d4m-nfs/etc/d4m-nfs-mounts.txt`, and write the following configuration in it:
|
||||
|
||||
```txt
|
||||
/Users:/Users
|
||||
@ -1439,17 +1581,10 @@ docker-compose up ...
|
||||
|
||||
|
||||
|
||||
### Other good workarounds:
|
||||
|
||||
- [docker-sync](https://github.com/EugenMayer/docker-sync)
|
||||
- Add more here..
|
||||
|
||||
|
||||
|
||||
|
||||
More details about this issue [here](https://github.com/docker/for-mac/issues/77).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1534,3 +1669,17 @@ This error sometimes happens because your Laravel application isn't running on t
|
||||
2. Change the `DB_HOST` variable on env with the IP that you received from previous step.
|
||||
* Option B
|
||||
1. Change the `DB_HOST` value to the same name as the MySQL docker container. The Laradock docker-compose file currently has this as `mysql`
|
||||
|
||||
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
|
||||
|
||||
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem.
|
||||
|
||||
## Custom composer repo packagist url and npm registry url
|
||||
|
||||
In China, the origin source of composer and npm is very slow. You can add `WORKSPACE_NPM_REGISTRY` and `WORKSPACE_COMPOSER_REPO_PACKAGIST` config in `.env` to use your custom source.
|
||||
|
||||
Example:
|
||||
```bash
|
||||
WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org
|
||||
WORKSPACE_COMPOSER_REPO_PACKAGIST=https://packagist.phpcomposer.com
|
||||
```
|
||||
|
@ -7,7 +7,7 @@ weight: 2
|
||||
## Requirements
|
||||
|
||||
- [Git](https://git-scm.com/downloads)
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 1.12`
|
||||
- [Docker](https://www.docker.com/products/docker/) `>= 17.12`
|
||||
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
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.
|
||||
|
||||
4 - Add the domains to the **hosts** files.
|
||||
|
||||
```
|
||||
127.0.0.1 project-1.dev
|
||||
127.0.0.1 project-2.dev
|
||||
127.0.0.1 project-1.test
|
||||
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.**
|
||||
|
||||
@ -159,10 +161,13 @@ We recommend using a Docker version which is newer than 1.13.
|
||||
cp env-example .env
|
||||
```
|
||||
|
||||
You can edit the `.env` file to 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 you want to be installed in your environment. You can always refer to the `docker-compose.yml` file to see how those variables have been used.
|
||||
|
||||
Depending on the host's operating system you may need to change the value given to `COMPOSE_FILE`. When you are running Laradock on Mac OS the correct file separator to use is `:`. When running Laradock from a Windows environment multiple files must be separated with `;`.
|
||||
|
||||
2 - Build the enviroment and run it using `docker-compose`
|
||||
By default the containers that will be created have the current directory name as suffix (e.g. `laradock_workspace_1`). This can cause mixture of data inside the container volumes if you use laradock in multiple projects. In this case, either read the guide for [multiple projects](#B) or change the variable `COMPOSE_PROJECT_NAME` to something unique like your project name.
|
||||
|
||||
2 - Build the environment and run it using `docker-compose`
|
||||
|
||||
In this example we'll see how to run NGINX (web server) and MySQL (database engine) to host a PHP Web Scripts:
|
||||
|
||||
@ -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
|
||||
```
|
||||
|
||||
**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).*
|
||||
|
||||
@ -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)*
|
||||
|
||||
<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`:
|
||||
|
||||
@ -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).*
|
||||
|
||||
<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)
|
||||
* [PHPStorm XDebug Setup](#PHPStorm-Debugging)
|
||||
* [Running Laravel Dusk Test](#Laravel-Dusk)
|
||||
|
||||
|
||||
|
||||
@ -326,6 +327,7 @@ Set the following variables:
|
||||
- `laradock/php-fpm/xdebug.ini`
|
||||
|
||||
Set the following variables:
|
||||
|
||||
```
|
||||
xdebug.remote_autostart=1
|
||||
xdebug.remote_enable=1
|
||||
@ -336,34 +338,39 @@ xdebug.cli_color=1
|
||||
|
||||
<a name="InstallCleanHouse"></a>
|
||||
### Need to clean house first?
|
||||
|
||||
Make sure you are starting with a clean state. For example, do you have other Laradock containers and images?
|
||||
Here are a few things I use to clean things up.
|
||||
|
||||
- Delete all containers using `grep laradock_` on the names, see: [Remove all containers based on docker image name](https://linuxconfig.org/remove-all-containners-based-on-docker-image-name).
|
||||
|
||||
`docker ps -a | awk '{ print $1,$2 }' | grep laradock_ | awk '{print $1}' | xargs -I {} docker rm {}`
|
||||
|
||||
- Delete all images containing `laradock`.
|
||||
|
||||
`docker images | awk '{print $1,$2,$3}' | grep laradock_ | awk '{print $3}' | xargs -I {} docker rmi {}`
|
||||
**Note:** This will only delete images that were built with `Laradock`, **NOT** `laradock/*` which are pulled down by `Laradock` such as `laradock/workspace`, etc.
|
||||
**Note:** Some may fail with:
|
||||
`Error response from daemon: conflict: unable to delete 3f38eaed93df (cannot be forced) - image has dependent child images`
|
||||
|
||||
- I added this to my `.bashrc` to remove orphaned images.
|
||||
```
|
||||
dclean() {
|
||||
processes=`docker ps -q -f status=exited`
|
||||
if [ -n "$processes" ]; thend
|
||||
docker rm $processes
|
||||
fi
|
||||
|
||||
images=`docker images -q -f dangling=true`
|
||||
if [ -n "$images" ]; then
|
||||
docker rmi $images
|
||||
fi
|
||||
}
|
||||
```
|
||||
```
|
||||
dclean() {
|
||||
processes=`docker ps -q -f status=exited`
|
||||
if [ -n "$processes" ]; then
|
||||
docker rm $processes
|
||||
fi
|
||||
|
||||
images=`docker images -q -f dangling=true`
|
||||
if [ -n "$images" ]; then
|
||||
docker rmi $images
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
- If you frequently switch configurations for Laradock, you may find that adding the following and added to your `.bashrc` or equivalent useful:
|
||||
|
||||
```
|
||||
# remove laravel* containers
|
||||
# remove laravel_* images
|
||||
@ -406,14 +413,14 @@ laradock_php-fpm_1 php-fpm Up 9000/tcp
|
||||
laradock_volumes_data_1 true Exit 0
|
||||
laradock_volumes_source_1 true Exit 0
|
||||
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
|
||||
|
||||
|
||||
```
|
||||
|
||||
<a name="enablePhpXdebug"></a>
|
||||
## Enable xDebug on php-fpm
|
||||
|
||||
In a host terminal sitting in the laradock folder, run: `.php-fpm/xdebug status`
|
||||
You should see something like the following:
|
||||
|
||||
```
|
||||
xDebug status
|
||||
laradock_php-fpm_1
|
||||
@ -422,6 +429,7 @@ Copyright (c) 1997-2016 The PHP Group
|
||||
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
|
||||
with Xdebug v2.4.1, Copyright (c) 2002-2016, by Derick Rethans
|
||||
```
|
||||
|
||||
Other commands include `.php-fpm/xdebug start | stop`.
|
||||
|
||||
If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will already be running when
|
||||
@ -430,6 +438,7 @@ If you have enabled `xdebug=true` in `docker-compose.yml/php-fpm`, `xdebug` will
|
||||
|
||||
<a name="InstallPHPStormConfigs"></a>
|
||||
## PHPStorm Settings
|
||||
|
||||
- Here are some settings that are known to work:
|
||||
- `Settings/BuildDeploymentConnection`
|
||||
- 
|
||||
@ -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:
|
||||
|
||||
```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:
|
||||
@ -58,7 +58,7 @@ That's it! enjoy :)
|
||||
<a name="features"></a>
|
||||
## 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...
|
||||
- Run your own combination of software: Memcached, HHVM, Beanstalkd...
|
||||
- Every software runs on a separate container: PHP-FPM, NGINX, PHP-CLI...
|
||||
@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
|
||||
- **Queueing Management:**
|
||||
Beanstalkd Console - RabbitMQ Console
|
||||
- **Random Tools:**
|
||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Mailhog - Minio - Varnish - Swoole - Laravel Echo...
|
||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Mailhog - MailDev - Minio - Varnish - Swoole - Portainer - Laravel Echo...
|
||||
|
||||
Laradock introduces the **Workspace** Image, as a development environment.
|
||||
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.
|
||||
@ -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.
|
||||
|
||||
[](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)
|
||||
* [RubyDev-Dock](https://github.com/scudelletti/rubydev-dock) by [Diogo Scudelletti](https://github.com/scudelletti)
|
||||
* [NoDock](https://github.com/Osedea/nodock) by [Osedea](https://github.com/Osedea)
|
||||
* [Dockery](https://github.com/taufek/dockery) by [Taufek](https://github.com/Taufek)
|
||||
|
||||
If you want your project listed here, please open an issue.
|
||||
|
@ -20,11 +20,25 @@
|
||||
<main class="main">
|
||||
<div class="drawer">
|
||||
{{ partial "drawer" . }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<article class="article">
|
||||
<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 }}
|
||||
|
||||
|
@ -24,6 +24,20 @@
|
||||
|
||||
<article class="article">
|
||||
<div class="wrapper">
|
||||
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
<!-- Google Ads -->
|
||||
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
||||
<!-- Laradock Horizontal -->
|
||||
<ins class="adsbygoogle"
|
||||
style="display:inline-block;width:890px;height:100px"
|
||||
data-ad-client="ca-pub-9826129398689742"
|
||||
data-ad-slot="2340256024"></ins>
|
||||
<script>
|
||||
(adsbygoogle = window.adsbygoogle || []).push({});
|
||||
</script>
|
||||
<!-- ------------------------------------------------------------------------- -->
|
||||
|
||||
{{ range where .Site.Pages "Type" "index" }}
|
||||
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
<div class="logo">
|
||||
<img src="{{ $.Site.BaseURL }}{{ . }}">
|
||||
</div>
|
||||
Laradock
|
||||
{{ end }}
|
||||
<!--<div class="name">-->
|
||||
<!--<strong>{{ .Site.Title }} {{ with .Site.Params.version }}<span class="version">{{ . }}</span>{{ end }}</strong>-->
|
||||
@ -42,18 +43,39 @@
|
||||
</ul>
|
||||
{{ 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>-->
|
||||
<!--<span class="section">The author</span>-->
|
||||
|
||||
<ul>
|
||||
{{ with .Site.Social.twitter }}
|
||||
<li>
|
||||
<a href="https://twitter.com/{{ . }}" target="_blank" title="@{{ . }} on Twitter">
|
||||
@{{ . }} on Twitter
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
<!---->
|
||||
<!--<ul>-->
|
||||
<!--{{ with .Site.Social.twitter }}-->
|
||||
<!--<li>-->
|
||||
<!--<a href="https://twitter.com/{{ . }}" target="_blank" title="@{{ . }} on Twitter">-->
|
||||
<!--@{{ . }} on Twitter-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--{{ end }}-->
|
||||
|
||||
<!--{{ with .Site.Social.github }}-->
|
||||
<!--<li>-->
|
||||
@ -63,16 +85,17 @@
|
||||
<!--</li>-->
|
||||
<!--{{ end }}-->
|
||||
|
||||
{{ with .Site.Social.email }}
|
||||
<li>
|
||||
<a href="mailto:{{ . }}" title="Email of {{ . }}">
|
||||
Contact via email
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
<!--{{ with .Site.Social.email }}-->
|
||||
<!--<li>-->
|
||||
<!--<a href="mailto:{{ . }}" title="Email of {{ . }}">-->
|
||||
<!--Contact via email-->
|
||||
<!--</a>-->
|
||||
<!--</li>-->
|
||||
<!--{{ end }}-->
|
||||
<!--</ul>-->
|
||||
<!--{{ end }}-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -21,7 +21,6 @@
|
||||
<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>
|
||||
</div>
|
||||
<p style="font-size: 18px; padding: 8px">Github</p>
|
||||
{{ end }}
|
||||
|
||||
<!-- TODO: disabled until Hugo supports the generation of a content index natively
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 85 KiB |
Binary file not shown.
After Width: | Height: | Size: 64 KiB |
@ -108,9 +108,17 @@ font-weight:700;
|
||||
OVERRIDING THE DEFAULT STYLES - By Mahmoud Zalt (mahmoud@zalt.me) for Laradock.io
|
||||
*/
|
||||
|
||||
.project .logo img{
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
|
||||
.project .logo img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
background: transparent;
|
||||
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)
|
||||
|
||||
Copyright 2016 <Mahmoud Zalt>
|
||||
Copyright 2018 <Mahmoud Zalt>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
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
|
||||
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
|
||||
THE SOFTWARE.
|
||||
THE SOFTWARE.
|
||||
|
33
README.md
33
README.md
@ -1,33 +0,0 @@
|
||||

|
||||
|
||||
[](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)
|
||||
|
||||
> Use Docker first and learn about it later.
|
||||
|
||||
A Docker PHP development environment that facilitates running **PHP** Apps on **Docker**.
|
||||
|
||||
[](http://zalt.me)
|
||||
|
||||
## Documentation
|
||||
|
||||
[**Full Documentation Here**](http://laradock.io)
|
||||
|
||||
## Credits
|
||||
|
||||
**Maintainers:**
|
||||
|
||||
- [Mahmoud Zalt](https://github.com/Mahmoudz) @mahmoudz | [Twitter](https://twitter.com/Mahmoud_Zalt) | [Site](http://zalt.me)
|
||||
- [Bo-Yi Wu](https://github.com/appleboy) @appleboy | [Twitter](https://twitter.com/appleboy)
|
||||
- [Philippe Trépanier](https://github.com/philtrep) @philtrep
|
||||
- [Mike Erickson](https://github.com/mikeerickson) @mikeerickson
|
||||
- [Dwi Fahni Denni](https://github.com/zeroc0d3) @zeroc0d3
|
||||
- [Thor Erik](https://github.com/thorerik) @thorerik
|
||||
- [Winfried van Loon](https://github.com/winfried-van-loon) @winfried-van-loon
|
||||
- [TJ Miller](https://github.com/sixlive) @sixlive
|
||||
- [Yu-Lung Shao (Allen)](https://github.com/bestlong) @bestlong
|
||||
- [Milan Urukalo](https://github.com/urukalo) @urukalo
|
||||
- Join Us.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](https://github.com/laradock/laradock/blob/master/LICENSE) (MIT)
|
@ -3,7 +3,7 @@ FROM adminer:4.3.0
|
||||
# Version 4.3.1 contains PostgreSQL login errors. See docs.
|
||||
# See https://sourceforge.net/p/adminer/bugs-and-features/548/
|
||||
|
||||
MAINTAINER Patrick Artounian <partounian@gmail.com>
|
||||
LABEL maintainer="Patrick Artounian <partounian@gmail.com>"
|
||||
|
||||
# Add volume for sessions to allow session persistence
|
||||
VOLUME /sessions
|
||||
|
@ -1,7 +1,7 @@
|
||||
FROM aerospike:latest
|
||||
|
||||
MAINTAINER Luciano Jr <luciano@lucianojr.com.br>
|
||||
LABEL maintainer="Luciano Jr <luciano@lucianojr.com.br>"
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
WORKDIR /var/www/public/
|
||||
WORKDIR /var/www/
|
||||
|
||||
COPY vhost.conf /etc/apache2/sites-enabled/vhost.conf
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName laradock.dev
|
||||
DocumentRoot /var/www/public/
|
||||
ServerName laradock.test
|
||||
DocumentRoot /var/www/
|
||||
Options Indexes FollowSymLinks
|
||||
|
||||
<Directory "/var/www/public/">
|
||||
<Directory "/var/www/">
|
||||
AllowOverride All
|
||||
<IfVersion < 2.4>
|
||||
Allow from all
|
||||
|
@ -1,5 +1,5 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName sample.dev
|
||||
ServerName sample.test
|
||||
DocumentRoot /var/www/sample/public/
|
||||
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
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM phusion/baseimage:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV PATH /usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
@ -13,4 +13,4 @@ VOLUME /var/lib/beanstalkd/data
|
||||
|
||||
EXPOSE 11300
|
||||
|
||||
CMD ["/usr/bin/beanstalkd"]
|
||||
CMD ["/usr/bin/beanstalkd"]
|
||||
|
@ -1,28 +1,46 @@
|
||||
# Docs: https://caddyserver.com/docs/caddyfile
|
||||
0.0.0.0:80
|
||||
root /var/www/public
|
||||
fastcgi / php-fpm:9000 php {
|
||||
index index.php
|
||||
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
|
||||
#}
|
||||
}
|
||||
|
||||
# To handle .html extensions with laravel change ext to
|
||||
# ext / .html
|
||||
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
|
||||
#}
|
||||
|
||||
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
|
||||
#}
|
||||
laradock2.demo:80 {
|
||||
# Create a Proxy and cors.
|
||||
#proxy domain.com
|
||||
#cors
|
||||
}
|
||||
|
@ -1,25 +1,17 @@
|
||||
FROM alpine:3.4
|
||||
FROM zuohuadong/caddy:alpine
|
||||
|
||||
MAINTAINER Eric Pfeiffer <computerfr33k@users.noreply.github.com>
|
||||
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
|
||||
|
||||
ENV caddy_version=0.10.3
|
||||
ARG plugins=http.git
|
||||
ARG plugins="cors"
|
||||
|
||||
LABEL caddy_version="$caddy_version" architecture="amd64"
|
||||
## ARG plugins="cors cgi cloudflare azure linode"
|
||||
|
||||
RUN apk update \
|
||||
&& apk upgrade \
|
||||
&& apk add tar curl git openssh
|
||||
|
||||
RUN curl --silent --show-error --fail --location \
|
||||
--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
|
||||
RUN caddyplug install ${plugins}
|
||||
|
||||
|
||||
EXPOSE 80 443 2015
|
||||
|
||||
WORKDIR /var/www/public
|
||||
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile"]
|
||||
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
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
|
||||
|
||||
|
8
docker-compose.sync.yml
Normal file
8
docker-compose.sync.yml
Normal file
@ -0,0 +1,8 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
volumes:
|
||||
applications-sync:
|
||||
external:
|
||||
name: "applications-docker-sync"
|
@ -1,103 +1,169 @@
|
||||
version: '2'
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
frontend:
|
||||
driver: ${NETWORKS_DRIVER}
|
||||
backend:
|
||||
driver: ${NETWORKS_DRIVER}
|
||||
|
||||
volumes:
|
||||
mysql:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
percona:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
mssql:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
postgres:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
memcached:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
redis:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
neo4j:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
mariadb:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
mongo:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
minio:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
rethinkdb:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
phpmyadmin:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
adminer:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
aerospike:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
caddy:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
elasticsearch:
|
||||
driver: ${VOLUMES_DRIVER}
|
||||
|
||||
services:
|
||||
|
||||
### Applications Code Container #############################
|
||||
|
||||
applications:
|
||||
image: tianon/true
|
||||
volumes:
|
||||
- ${APPLICATION}:/var/www
|
||||
|
||||
### Workspace Utilities Container ###########################
|
||||
|
||||
### Workspace Utilities ##################################
|
||||
workspace:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
||||
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
|
||||
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
|
||||
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
|
||||
- INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
|
||||
- INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
|
||||
- INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
|
||||
- INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
|
||||
- INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
|
||||
- NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
|
||||
- INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
|
||||
- INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP}
|
||||
- INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER}
|
||||
- INSTALL_NPM_VUE_CLI=${WORKSPACE_INSTALL_NPM_VUE_CLI}
|
||||
- INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
|
||||
- INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
|
||||
- INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
|
||||
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||
- INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
|
||||
- COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
|
||||
- COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
|
||||
- INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
|
||||
- INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
|
||||
- INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
|
||||
- INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
|
||||
- INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
|
||||
- INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
|
||||
- INSTALL_MC=${WORKSPACE_INSTALL_MC}
|
||||
- INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
|
||||
- INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON}
|
||||
- INSTALL_IMAGE_OPTIMIZERS=${WORKSPACE_INSTALL_IMAGE_OPTIMIZERS}
|
||||
- INSTALL_IMAGEMAGICK=${WORKSPACE_INSTALL_IMAGEMAGICK}
|
||||
- INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
|
||||
- INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
|
||||
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
|
||||
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
|
||||
- PUID=${WORKSPACE_PUID}
|
||||
- PGID=${WORKSPACE_PGID}
|
||||
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
|
||||
- NODE_VERSION=${WORKSPACE_NODE_VERSION}
|
||||
- YARN_VERSION=${WORKSPACE_YARN_VERSION}
|
||||
- DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION}
|
||||
- TZ=${WORKSPACE_TIMEZONE}
|
||||
- BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
|
||||
- BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
||||
volumes_from:
|
||||
- applications
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
extra_hosts:
|
||||
- "dockerhost:${DOCKER_HOST_IP}"
|
||||
ports:
|
||||
- "${WORKSPACE_SSH_PORT}:22"
|
||||
tty: true
|
||||
environment:
|
||||
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### PHP-FPM Container #######################################
|
||||
|
||||
### PHP-FPM ##############################################
|
||||
php-fpm:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
|
||||
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
|
||||
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
|
||||
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
|
||||
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
|
||||
- INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
|
||||
- INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
|
||||
- INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
|
||||
- INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
|
||||
- INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
|
||||
- INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
|
||||
- INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
|
||||
- INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
|
||||
- INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
|
||||
- INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
|
||||
- AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
|
||||
- INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
|
||||
- INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
|
||||
- INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
|
||||
- INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
|
||||
- INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
|
||||
- INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
|
||||
- INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
|
||||
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
|
||||
dockerfile: "Dockerfile-${PHP_VERSION}"
|
||||
volumes_from:
|
||||
- applications
|
||||
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
|
||||
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
|
||||
volumes:
|
||||
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
expose:
|
||||
- "9000"
|
||||
depends_on:
|
||||
- workspace
|
||||
extra_hosts:
|
||||
- "dockerhost:${DOCKER_HOST_IP}"
|
||||
environment:
|
||||
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
|
||||
depends_on:
|
||||
- workspace
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### PHP Worker Container #####################################
|
||||
|
||||
### PHP Worker ############################################
|
||||
php-worker:
|
||||
build:
|
||||
context: ./php-worker
|
||||
volumes_from:
|
||||
- applications
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
- ./php-worker/supervisord.d:/etc/supervisord.d
|
||||
depends_on:
|
||||
- workspace
|
||||
extra_hosts:
|
||||
@ -105,16 +171,15 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Nginx Server Container ##################################
|
||||
|
||||
### NGINX Server #########################################
|
||||
nginx:
|
||||
build:
|
||||
context: ./nginx
|
||||
args:
|
||||
- PHP_UPSTREAM=php-fpm
|
||||
volumes_from:
|
||||
- applications
|
||||
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
|
||||
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
|
||||
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
|
||||
ports:
|
||||
@ -126,8 +191,7 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Blackfire Container #################################
|
||||
|
||||
### Blackfire ########################################
|
||||
blackfire:
|
||||
image: blackfire/blackfire
|
||||
environment:
|
||||
@ -138,18 +202,19 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Apache Server Container #################################
|
||||
|
||||
### Apache Server ########################################
|
||||
apache2:
|
||||
build:
|
||||
context: ./apache2
|
||||
args:
|
||||
- PHP_SOCKET=${PHP_SOCKET}
|
||||
volumes_from:
|
||||
- applications
|
||||
- PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
|
||||
- PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
|
||||
- PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
|
||||
- DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
- ${APACHE_HOST_LOG_PATH}:/var/log/apache2
|
||||
- ./apache2/sites:/etc/apache2/sites-available
|
||||
- ${APACHE_SITES_PATH}:/etc/apache2/sites-available
|
||||
ports:
|
||||
- "${APACHE_HOST_HTTP_PORT}:80"
|
||||
- "${APACHE_HOST_HTTPS_PORT}:443"
|
||||
@ -159,12 +224,11 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### HHVM Container ##########################################
|
||||
|
||||
### HHVM #################################################
|
||||
hhvm:
|
||||
build: ./hhvm
|
||||
volumes_from:
|
||||
- applications
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
expose:
|
||||
- "9000"
|
||||
depends_on:
|
||||
@ -173,12 +237,12 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Minio Container #########################################
|
||||
|
||||
### Minio ################################################
|
||||
minio:
|
||||
build: ./minio
|
||||
volumes:
|
||||
- minio:/export
|
||||
- ${DATA_PATH_HOST}/minio/data:/export
|
||||
- ${DATA_PATH_HOST}/minio/config:/root/.minio
|
||||
ports:
|
||||
- "${MINIO_PORT}:9000"
|
||||
environment:
|
||||
@ -186,12 +250,14 @@ services:
|
||||
- MINIO_SECRET_KEY=secretkey
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### MySQL Container #########################################
|
||||
|
||||
### MySQL ################################################
|
||||
mysql:
|
||||
build:
|
||||
context: ./mysql
|
||||
args:
|
||||
- MYSQL_VERSION=${MYSQL_VERSION}
|
||||
environment:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
@ -199,15 +265,14 @@ services:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- TZ=${WORKSPACE_TIMEZONE}
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
|
||||
- ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
||||
- ${DATA_PATH_HOST}/mysql:/var/lib/mysql
|
||||
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- "${MYSQL_PORT}:3306"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Percona Container #########################################
|
||||
|
||||
### Percona ################################################
|
||||
percona:
|
||||
build:
|
||||
context: ./percona
|
||||
@ -217,15 +282,14 @@ services:
|
||||
- MYSQL_PASSWORD=${PERCONA_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/percona:/var/lib/mysql
|
||||
- ./percona/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
||||
- ${DATA_PATH_HOST}/percona:/var/lib/mysql
|
||||
- ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- "${PERCONA_PORT}:3306"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### MSSQL Container #########################################
|
||||
|
||||
### MSSQL ################################################
|
||||
mssql:
|
||||
build:
|
||||
context: ./mssql
|
||||
@ -234,19 +298,18 @@ services:
|
||||
- SA_PASSWORD=${MSSQL_PASSWORD}
|
||||
- ACCEPT_EULA=Y
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/mssql:/var/opt/mssql
|
||||
- ${DATA_PATH_HOST}/mssql:/var/opt/mssql
|
||||
ports:
|
||||
- "${MSSQL_PORT}:1433"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### MariaDB Container #######################################
|
||||
|
||||
### MariaDB ##############################################
|
||||
mariadb:
|
||||
build: ./mariadb
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/mariadb:/var/lib/mysql
|
||||
- ./mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
|
||||
- ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
|
||||
- ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- "${MARIADB_PORT}:3306"
|
||||
environment:
|
||||
@ -257,12 +320,12 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### PostgreSQL Container ####################################
|
||||
|
||||
### PostgreSQL ###########################################
|
||||
postgres:
|
||||
build: ./postgres
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
|
||||
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
|
||||
- ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
|
||||
ports:
|
||||
- "${POSTGRES_PORT}:5432"
|
||||
environment:
|
||||
@ -272,12 +335,11 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### PostgreSQL PostGis Container ############################
|
||||
|
||||
### PostgreSQL PostGis ###################################
|
||||
postgres-postgis:
|
||||
build: ./postgres-postgis
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/postgres:/var/lib/postgresql/data
|
||||
- ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "${POSTGRES_PORT}:5432"
|
||||
environment:
|
||||
@ -287,8 +349,7 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Neo4j Container #########################################
|
||||
|
||||
### Neo4j ################################################
|
||||
neo4j:
|
||||
build: ./neo4j
|
||||
ports:
|
||||
@ -297,51 +358,46 @@ services:
|
||||
environment:
|
||||
- NEO4J_AUTH=default:secret
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/neo4j:/var/lib/neo4j/data
|
||||
- ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### MongoDB Container #######################################
|
||||
|
||||
### MongoDB ##############################################
|
||||
mongo:
|
||||
build: ./mongo
|
||||
ports:
|
||||
- "${MONGODB_PORT}:27017"
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/mongo:/data/db
|
||||
- ${DATA_PATH_HOST}/mongo:/data/db
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### RethinkDB Container #######################################
|
||||
|
||||
### RethinkDB ##############################################
|
||||
rethinkdb:
|
||||
build: ./rethinkdb
|
||||
ports:
|
||||
- "${RETHINKDB_PORT}:8080"
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/rethinkdb:/data/rethinkdb_data
|
||||
- ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Redis Container #########################################
|
||||
|
||||
### Redis ################################################
|
||||
redis:
|
||||
build: ./redis
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/redis:/data
|
||||
- ${DATA_PATH_HOST}/redis:/data
|
||||
ports:
|
||||
- "6379:6379"
|
||||
- "${REDIS_PORT}:6379"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Aerospike c Container ###################################
|
||||
|
||||
### Aerospike ##########################################
|
||||
aerospike:
|
||||
build: ./aerospike
|
||||
volumes_from:
|
||||
- workspace
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/aerospike:/opt/aerospike/data
|
||||
- workspace
|
||||
- ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
|
||||
ports:
|
||||
- "${AEROSPIKE_SERVICE_PORT}:3000"
|
||||
- "${AEROSPIKE_FABRIC_PORT}:3001"
|
||||
@ -350,12 +406,11 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Memcached Container #####################################
|
||||
|
||||
### Memcached ############################################
|
||||
memcached:
|
||||
build: ./memcached
|
||||
volumes:
|
||||
- ${DATA_SAVE_PATH}/memcached:/var/lib/memcached
|
||||
- ${DATA_PATH_HOST}/memcached:/var/lib/memcached
|
||||
ports:
|
||||
- "${MEMCACHED_HOST_PORT}:11211"
|
||||
depends_on:
|
||||
@ -363,8 +418,7 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Beanstalkd Container ####################################
|
||||
|
||||
### Beanstalkd ###########################################
|
||||
beanstalkd:
|
||||
build: ./beanstalkd
|
||||
ports:
|
||||
@ -375,8 +429,7 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### RabbitMQ Container ######################################
|
||||
|
||||
### RabbitMQ #############################################
|
||||
rabbitmq:
|
||||
build: ./rabbitmq
|
||||
ports:
|
||||
@ -392,27 +445,24 @@ services:
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Beanstalkd Console Container ############################
|
||||
|
||||
### Beanstalkd Console ###################################
|
||||
beanstalkd-console:
|
||||
build: ./beanstalkd-console
|
||||
ports:
|
||||
- "2080:2080"
|
||||
- "${BEANSTALKD_CONSOLE_HOST_PORT}:2080"
|
||||
depends_on:
|
||||
- beanstalkd
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Caddy Server Container ##################################
|
||||
|
||||
### Caddy Server #########################################
|
||||
caddy:
|
||||
build: ./caddy
|
||||
volumes_from:
|
||||
- applications
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
|
||||
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
|
||||
- ${DATA_SAVE_PATH}:/root/.caddy
|
||||
- ${DATA_PATH_HOST}:/root/.caddy
|
||||
ports:
|
||||
- "${CADDY_HOST_HTTP_PORT}:80"
|
||||
- "${CADDY_HOST_HTTPS_PORT}:443"
|
||||
@ -422,8 +472,7 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### phpMyAdmin Container ####################################
|
||||
|
||||
### phpMyAdmin ###########################################
|
||||
phpmyadmin:
|
||||
build: ./phpmyadmin
|
||||
environment:
|
||||
@ -439,8 +488,7 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Adminer Container ####################################
|
||||
|
||||
### Adminer ###########################################
|
||||
adminer:
|
||||
build:
|
||||
context: ./adminer
|
||||
@ -454,25 +502,33 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### pgAdmin Container #######################################
|
||||
|
||||
### pgAdmin ##############################################
|
||||
pgadmin:
|
||||
build: ./pgadmin
|
||||
ports:
|
||||
- "5050:5050"
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
|
||||
depends_on:
|
||||
- postgres
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### ElasticSearch Container #################################
|
||||
|
||||
### ElasticSearch ########################################
|
||||
elasticsearch:
|
||||
build: ./elasticsearch
|
||||
volumes:
|
||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
||||
- elasticsearch-plugins:/usr/share/elasticsearch/plugins
|
||||
- elasticsearch:/usr/share/elasticsearch/data
|
||||
environment:
|
||||
- cluster.name=laradock-cluster
|
||||
- bootstrap.memory_lock=true
|
||||
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
ports:
|
||||
- "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
|
||||
- "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
|
||||
@ -483,8 +539,7 @@ services:
|
||||
- backend
|
||||
|
||||
|
||||
### Kibana Container #######################################
|
||||
|
||||
### Kibana ##############################################
|
||||
kibana:
|
||||
build: ./kibana
|
||||
ports:
|
||||
@ -495,22 +550,20 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Certbot Container ##################################
|
||||
|
||||
### Certbot #########################################
|
||||
certbot:
|
||||
build:
|
||||
context: ./certbot
|
||||
volumes:
|
||||
- ./data/certbot/certs/:/var/certs
|
||||
- ./certbot/letsencrypt/:/var/www/letsencrypt
|
||||
- ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
|
||||
environment:
|
||||
- CN="fake.domain.com"
|
||||
- EMAIL="fake.email@gmail.com"
|
||||
networks:
|
||||
- frontend
|
||||
|
||||
### Mailhog Container #########################################
|
||||
|
||||
### Mailhog ################################################
|
||||
mailhog:
|
||||
build: ./mailhog
|
||||
ports:
|
||||
@ -520,8 +573,17 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Selenium Container ########################################
|
||||
### MailDev ##############################################
|
||||
maildev:
|
||||
build: ./maildev
|
||||
ports:
|
||||
- "${MAILDEV_HTTP_PORT}:80"
|
||||
- "${MAILDEV_SMTP_PORT}:25"
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Selenium ###############################################
|
||||
selenium:
|
||||
build: ./selenium
|
||||
ports:
|
||||
@ -531,8 +593,7 @@ services:
|
||||
networks:
|
||||
- frontend
|
||||
|
||||
### Varnish Proxy 1 ##########################################
|
||||
|
||||
### Varnish ##########################################
|
||||
proxy:
|
||||
build: ./varnish
|
||||
expose:
|
||||
@ -550,8 +611,6 @@ services:
|
||||
networks:
|
||||
- frontend
|
||||
|
||||
### Varnish Proxy 2 ##########################################
|
||||
|
||||
proxy2:
|
||||
build: ./varnish
|
||||
expose:
|
||||
@ -569,9 +628,8 @@ services:
|
||||
networks:
|
||||
- frontend
|
||||
|
||||
### Balancer Haproxy ##########################################
|
||||
|
||||
balancer:
|
||||
### HAProxy ####################################
|
||||
haproxy:
|
||||
build: ./haproxy
|
||||
ports:
|
||||
- "${HAPROXY_HOST_HTTP_PORT}:8085"
|
||||
@ -582,7 +640,6 @@ services:
|
||||
- proxy2
|
||||
|
||||
### Jenkins ###################################################
|
||||
|
||||
jenkins:
|
||||
build: ./jenkins
|
||||
environment:
|
||||
@ -598,6 +655,17 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Grafana ################################################
|
||||
grafana:
|
||||
build:
|
||||
context: ./grafana
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/grafana:/var/lib/grafana
|
||||
ports:
|
||||
- "${GRAFANA_PORT}:3000"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Laravel Echo Server #######################################
|
||||
laravel-echo-server:
|
||||
build:
|
||||
@ -611,49 +679,38 @@ services:
|
||||
networks:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
### Solr ################################################
|
||||
solr:
|
||||
build:
|
||||
context: ./solr
|
||||
args:
|
||||
- SOLR_VERSION=${SOLR_VERSION}
|
||||
- SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
|
||||
ports:
|
||||
- "${SOLR_PORT}:8983"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Networks Setup ############################################
|
||||
### AWS EB-CLI ################################################
|
||||
aws:
|
||||
build:
|
||||
context: ./aws
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
depends_on:
|
||||
- workspace
|
||||
tty: true
|
||||
|
||||
networks:
|
||||
frontend:
|
||||
driver: "bridge"
|
||||
backend:
|
||||
driver: "bridge"
|
||||
|
||||
### Volumes Setup #############################################
|
||||
|
||||
volumes:
|
||||
mysql:
|
||||
driver: "local"
|
||||
percona:
|
||||
driver: "local"
|
||||
mssql:
|
||||
driver: "local"
|
||||
postgres:
|
||||
driver: "local"
|
||||
memcached:
|
||||
driver: "local"
|
||||
redis:
|
||||
driver: "local"
|
||||
neo4j:
|
||||
driver: "local"
|
||||
mariadb:
|
||||
driver: "local"
|
||||
mongo:
|
||||
driver: "local"
|
||||
minio:
|
||||
driver: "local"
|
||||
rethinkdb:
|
||||
driver: "local"
|
||||
phpmyadmin:
|
||||
driver: "local"
|
||||
adminer:
|
||||
driver: "local"
|
||||
aerospike:
|
||||
driver: "local"
|
||||
caddy:
|
||||
driver: "local"
|
||||
elasticsearch-data:
|
||||
driver: "local"
|
||||
elasticsearch-plugins:
|
||||
driver: "local"
|
||||
### Portainer ################################################
|
||||
portainer:
|
||||
build:
|
||||
context: ./portainer
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/portainer_data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 9010:9000
|
||||
|
||||
|
13
docker-sync.yml
Normal file
13
docker-sync.yml
Normal file
@ -0,0 +1,13 @@
|
||||
version: "2"
|
||||
|
||||
options:
|
||||
verbose: false
|
||||
syncs:
|
||||
applications-docker-sync: # name of the intermediary sync volume
|
||||
compose-dev-file-path: 'docker-compose.sync.yml' # docker-compose override file
|
||||
|
||||
src: '${APP_CODE_PATH_HOST}' # host source directory
|
||||
sync_userid: 1000 # giving permissions to www-data user (as defined in nginx and php-fpm Dockerfiles)
|
||||
sync_strategy: '${DOCKER_SYNC_STRATEGY}' # for osx use 'native_osx', for windows use 'unison'
|
||||
|
||||
sync_excludes: ['laradock', 'ignored_folder_example'] # ignored directories
|
@ -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
|
||||
|
265
env-example
265
env-example
@ -1,130 +1,222 @@
|
||||
############################
|
||||
# General Setup
|
||||
############################
|
||||
###########################################################
|
||||
###################### General Setup ######################
|
||||
###########################################################
|
||||
|
||||
### Application Path
|
||||
# Point to your application code, will be available at `/var/www`.
|
||||
### Paths #################################################
|
||||
|
||||
APPLICATION=../
|
||||
# Point to the path of your applications code on your host
|
||||
APP_CODE_PATH_HOST=../
|
||||
|
||||
### Data Path:
|
||||
# For all storage systems.
|
||||
# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
|
||||
APP_CODE_PATH_CONTAINER=/var/www:cached
|
||||
|
||||
DATA_SAVE_PATH=~/.laradock/data
|
||||
# Choose storage path on your machine. For all storage systems
|
||||
DATA_PATH_HOST=~/.laradock/data
|
||||
|
||||
### PHP version
|
||||
# Applies to the Workspace and PHP-FPM containers (Does not apply to HHVM)
|
||||
# Accepted values: 71 - 70 - 56
|
||||
### Drivers ################################################
|
||||
|
||||
PHP_VERSION=71
|
||||
# All volumes driver
|
||||
VOLUMES_DRIVER=local
|
||||
|
||||
### PHP interpreter
|
||||
# Accepted values: hhvm - php-fpm
|
||||
# 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
|
||||
|
||||
### PHP Interpreter #######################################
|
||||
|
||||
# Select the PHP Interpreter. Accepted values: hhvm - php-fpm
|
||||
PHP_INTERPRETER=php-fpm
|
||||
|
||||
############################
|
||||
# Containers Customization
|
||||
############################
|
||||
### Docker Host IP ########################################
|
||||
|
||||
### 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=stable
|
||||
WORKSPACE_NPM_REGISTRY=
|
||||
WORKSPACE_INSTALL_YARN=true
|
||||
WORKSPACE_YARN_VERSION=latest
|
||||
WORKSPACE_INSTALL_NPM_GULP=true
|
||||
WORKSPACE_INSTALL_NPM_BOWER=true
|
||||
WORKSPACE_INSTALL_NPM_VUE_CLI=true
|
||||
WORKSPACE_INSTALL_PHPREDIS=true
|
||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||
WORKSPACE_INSTALL_SUBVERSION=false
|
||||
WORKSPACE_INSTALL_XDEBUG=false
|
||||
WORKSPACE_INSTALL_LDAP=false
|
||||
WORKSPACE_INSTALL_SOAP=false
|
||||
WORKSPACE_INSTALL_IMAP=false
|
||||
WORKSPACE_INSTALL_MONGO=false
|
||||
WORKSPACE_INSTALL_AMQP=false
|
||||
WORKSPACE_INSTALL_MSSQL=false
|
||||
WORKSPACE_INSTALL_NODE=false
|
||||
WORKSPACE_INSTALL_YARN=false
|
||||
WORKSPACE_INSTALL_DRUSH=false
|
||||
WORKSPACE_DRUSH_VERSION=8.1.17
|
||||
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
|
||||
WORKSPACE_INSTALL_AEROSPIKE=false
|
||||
WORKSPACE_INSTALL_V8JS=false
|
||||
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
|
||||
WORKSPACE_INSTALL_WORKSPACE_SSH=false
|
||||
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
|
||||
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
|
||||
WORKSPACE_INSTALL_DEPLOYER=false
|
||||
WORKSPACE_INSTALL_PRESTISSIMO=false
|
||||
WORKSPACE_INSTALL_LINUXBREW=false
|
||||
WORKSPACE_INSTALL_MC=false
|
||||
WORKSPACE_INSTALL_SYMFONY=false
|
||||
WORKSPACE_INSTALL_PYTHON=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_SWOOLE=false
|
||||
WORKSPACE_PUID=1000
|
||||
WORKSPACE_PGID=1000
|
||||
WORKSPACE_NODE_VERSION=stable
|
||||
WORKSPACE_YARN_VERSION=latest
|
||||
WORKSPACE_CHROME_DRIVER_VERSION=2.32
|
||||
WORKSPACE_TIMEZONE=UTC
|
||||
WORKSPACE_SSH_PORT=2222
|
||||
|
||||
### PHP_FPM ############################################################################################################
|
||||
### PHP_FPM ###############################################
|
||||
|
||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
|
||||
PHP_FPM_INSTALL_BCMATH=true
|
||||
PHP_FPM_INSTALL_MYSQLI=true
|
||||
PHP_FPM_INSTALL_TOKENIZER=true
|
||||
PHP_FPM_INSTALL_INTL=true
|
||||
PHP_FPM_INSTALL_IMAGEMAGICK=true
|
||||
PHP_FPM_INSTALL_OPCACHE=true
|
||||
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=true
|
||||
PHP_FPM_INSTALL_PHPREDIS=true
|
||||
PHP_FPM_INSTALL_MEMCACHED=false
|
||||
PHP_FPM_INSTALL_XDEBUG=false
|
||||
PHP_FPM_INSTALL_IMAP=false
|
||||
PHP_FPM_INSTALL_MONGO=false
|
||||
PHP_FPM_INSTALL_AMQP=false
|
||||
PHP_FPM_INSTALL_MSSQL=false
|
||||
PHP_FPM_INSTALL_SOAP=false
|
||||
PHP_FPM_INSTALL_ZIP_ARCHIVE=false
|
||||
PHP_FPM_INSTALL_BCMATH=false
|
||||
PHP_FPM_INSTALL_PHPREDIS=false
|
||||
PHP_FPM_INSTALL_MEMCACHED=false
|
||||
PHP_FPM_INSTALL_OPCACHE=false
|
||||
PHP_FPM_INSTALL_GMP=false
|
||||
PHP_FPM_INSTALL_EXIF=false
|
||||
PHP_FPM_INSTALL_AEROSPIKE=false
|
||||
PHP_FPM_INSTALL_MYSQLI=false
|
||||
PHP_FPM_INSTALL_TOKENIZER=false
|
||||
PHP_FPM_INSTALL_INTL=false
|
||||
PHP_FPM_INSTALL_PGSQL=false
|
||||
PHP_FPM_INSTALL_GHOSTSCRIPT=false
|
||||
PHP_FPM_INSTALL_LDAP=false
|
||||
PHP_FPM_INSTALL_SWOOLE=false
|
||||
PHP_FPM_INSTALL_PG_CLIENT=false
|
||||
PHP_FPM_INSTALL_PCNTL=false
|
||||
|
||||
### NGINX ##############################################################################################################
|
||||
### PHP_WORKER ############################################
|
||||
|
||||
PHP_WORKER_INSTALL_PGSQL=false
|
||||
|
||||
### NGINX #################################################
|
||||
|
||||
NGINX_HOST_HTTP_PORT=80
|
||||
NGINX_HOST_HTTPS_PORT=443
|
||||
NGINX_HOST_LOG_PATH=./logs/nginx/
|
||||
NGINX_SITES_PATH=./nginx/sites/
|
||||
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
|
||||
NGINX_PHP_UPSTREAM_PORT=9000
|
||||
|
||||
### APACHE #############################################################################################################
|
||||
### APACHE ################################################
|
||||
|
||||
APACHE_HOST_HTTP_PORT=80
|
||||
APACHE_HOST_HTTPS_PORT=443
|
||||
APACHE2_PHP_SOCKET=php-fpm:9000
|
||||
APACHE_HOST_LOG_PATH=./logs/apache2
|
||||
PHP_SOCKET=php-fpm:9000
|
||||
APACHE_SITES_PATH=./apache2/sites
|
||||
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=latest
|
||||
MYSQL_DATABASE=default
|
||||
MYSQL_USER=default
|
||||
MYSQL_PASSWORD=secret
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_ROOT_PASSWORD=root
|
||||
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
|
||||
|
||||
### Percona ############################################################################################################
|
||||
### REDIS #################################################
|
||||
|
||||
REDIS_PORT=6379
|
||||
|
||||
### Percona ###############################################
|
||||
|
||||
PERCONA_DATABASE=homestead
|
||||
PERCONA_USER=homestead
|
||||
PERCONA_PASSWORD=secret
|
||||
PERCONA_PORT=3306
|
||||
PERCONA_ROOT_PASSWORD=root
|
||||
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d
|
||||
|
||||
### MSSQL ##############################################################################################################
|
||||
### MSSQL #################################################
|
||||
|
||||
MSSQL_DATABASE=homestead
|
||||
MSSQL_PASSWORD=yourStrong(!)Password
|
||||
MSSQL_PORT=1433
|
||||
|
||||
### MARIADB ############################################################################################################
|
||||
### MARIADB ###############################################
|
||||
|
||||
MARIADB_DATABASE=default
|
||||
MARIADB_USER=default
|
||||
MARIADB_PASSWORD=secret
|
||||
MARIADB_PORT=3306
|
||||
MARIADB_ROOT_PASSWORD=root
|
||||
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d
|
||||
|
||||
### POSTGRES ###########################################################################################################
|
||||
### POSTGRES ##############################################
|
||||
|
||||
POSTGRES_DB=default
|
||||
POSTGRES_USER=default
|
||||
POSTGRES_PASSWORD=secret
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_ENTRYPOINT_INITDB=./postgres/docker-entrypoint-initdb.d
|
||||
|
||||
### RABBITMQ ###########################################################################################################
|
||||
### RABBITMQ ##############################################
|
||||
|
||||
RABBITMQ_NODE_HOST_PORT=5672
|
||||
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
|
||||
@ -132,43 +224,43 @@ RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
|
||||
RABBITMQ_DEFAULT_USER=guest
|
||||
RABBITMQ_DEFAULT_PASS=guest
|
||||
|
||||
### ELASTICSEARCH ######################################################################################################
|
||||
### ELASTICSEARCH #########################################
|
||||
|
||||
ELASTICSEARCH_HOST_HTTP_PORT=9200
|
||||
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300
|
||||
|
||||
### KIBANA #############################################################################################################
|
||||
### KIBANA ################################################
|
||||
|
||||
KIBANA_HTTP_PORT=5601
|
||||
|
||||
### MEMCACHED ##########################################################################################################
|
||||
### MEMCACHED #############################################
|
||||
|
||||
MEMCACHED_HOST_PORT=11211
|
||||
|
||||
### BEANSTALKD CONSOLE #################################################################################################
|
||||
### BEANSTALKD CONSOLE ####################################
|
||||
|
||||
BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
|
||||
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
|
||||
BEANSTALKD_CONSOLE_HOST_PORT=2080
|
||||
|
||||
### BEANSTALKD #########################################################################################################
|
||||
### BEANSTALKD ############################################
|
||||
|
||||
BEANSTALKD_HOST_PORT=11300
|
||||
|
||||
### SELENIUM ###########################################################################################################
|
||||
### SELENIUM ##############################################
|
||||
|
||||
SELENIUM_PORT=4444
|
||||
|
||||
### MINIO ##############################################################################################################
|
||||
### MINIO #################################################
|
||||
|
||||
MINIO_PORT=9000
|
||||
|
||||
### ADMINER ############################################################################################################
|
||||
### ADMINER ###############################################
|
||||
|
||||
ADM_PORT=8080
|
||||
ADM_INSTALL_MSSQL=false
|
||||
|
||||
### PHP MY ADMIN #######################################################################################################
|
||||
### PHP MY ADMIN ##########################################
|
||||
|
||||
# Accepted values: mariadb - mysql
|
||||
|
||||
@ -181,97 +273,86 @@ PMA_PASSWORD=secret
|
||||
PMA_ROOT_PASSWORD=secret
|
||||
PMA_PORT=8080
|
||||
|
||||
### VARNISH ############################################################################################################
|
||||
### MAILDEV ###############################################
|
||||
|
||||
MAILDEV_HTTP_PORT=1080
|
||||
MAILDEV_SMTP_PORT=25
|
||||
|
||||
### VARNISH ###############################################
|
||||
|
||||
VARNISH_CONFIG=/etc/varnish/default.vcl
|
||||
VARNISH_PORT=8080
|
||||
VARNISH_BACKEND_PORT=8888
|
||||
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600
|
||||
|
||||
### Varnish ############################################################################################################
|
||||
### Varnish ###############################################
|
||||
|
||||
# Proxy 1
|
||||
|
||||
VARNISH_PROXY1_CACHE_SIZE=128m
|
||||
VARNISH_PROXY1_BACKEND_HOST=workspace
|
||||
VARNISH_PROXY1_SERVER=SERVER1
|
||||
|
||||
# Proxy 2
|
||||
|
||||
VARNISH_PROXY2_CACHE_SIZE=128m
|
||||
VARNISH_PROXY2_BACKEND_HOST=workspace
|
||||
VARNISH_PROXY2_SERVER=SERVER2
|
||||
|
||||
### HAPROXY ############################################################################################################
|
||||
### HAPROXY ###############################################
|
||||
|
||||
HAPROXY_HOST_HTTP_PORT=8085
|
||||
|
||||
### JENKINS ############################################################################################################
|
||||
### JENKINS ###############################################
|
||||
|
||||
JENKINS_HOST_HTTP_PORT=8090
|
||||
JENKINS_HOST_SLAVE_AGENT_PORT=50000
|
||||
JENKINS_HOME=./jenkins/jenkins_home
|
||||
|
||||
### BLACKFIRE ##########################################################################################################
|
||||
### GRAFANA ###############################################
|
||||
|
||||
# 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.
|
||||
GRAFANA_PORT=3000
|
||||
|
||||
### 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
|
||||
BLACKFIRE_CLIENT_ID=<client_id>
|
||||
BLACKFIRE_CLIENT_TOKEN=<client_token>
|
||||
BLACKFIRE_SERVER_ID=<server_id>
|
||||
BLACKFIRE_SERVER_TOKEN=<server_token>
|
||||
|
||||
### AEROSPIKE ##########################################################################################################
|
||||
### AEROSPIKE #############################################
|
||||
|
||||
AEROSPIKE_SERVICE_PORT=3000
|
||||
AEROSPIKE_FABRIC_PORT=3001
|
||||
AEROSPIKE_HEARTBEAT_PORT=3002
|
||||
AEROSPIKE_INFO_PORT=3003
|
||||
|
||||
### RETHINKDB ##########################################################################################################
|
||||
## Temp solution, this should be in the dockerfile
|
||||
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
|
||||
# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz"
|
||||
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
|
||||
|
||||
### RETHINKDB #############################################
|
||||
|
||||
RETHINKDB_PORT=8090
|
||||
|
||||
### MONGODB ############################################################################################################
|
||||
### MONGODB ###############################################
|
||||
|
||||
MONGODB_PORT=27017
|
||||
|
||||
### CADDY ##############################################################################################################
|
||||
### CADDY #################################################
|
||||
|
||||
CADDY_HOST_HTTP_PORT=80
|
||||
CADDY_HOST_HTTPS_PORT=443
|
||||
CADDY_HOST_LOG_PATH=./logs/caddy
|
||||
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
|
||||
|
||||
### LARAVEL ECHO SERVER ################################################################################################
|
||||
### LARAVEL ECHO SERVER ###################################
|
||||
|
||||
LARAVEL_ECHO_SERVER_PORT=6001
|
||||
|
||||
### SOLR ##################################################
|
||||
|
||||
##### TO BE CONTINUE .................................
|
||||
|
||||
# ......... Missing: neo4j mongo rethinkdb redis aerospike pgadmin...
|
||||
# .........
|
||||
# .........
|
||||
|
||||
|
||||
|
||||
############################
|
||||
# Miscellaneous
|
||||
############################
|
||||
|
||||
# Replace with your Docker Host IP (will be appended to /etc/hosts)
|
||||
|
||||
DOCKER_HOST_IP=10.0.75.1
|
||||
|
||||
|
||||
# The Remote Interpreter entry matching name `laradock`
|
||||
|
||||
PHP_IDE_CONFIG=serverName=laradock
|
||||
|
||||
|
||||
# Fix for windows users to make sure the application path works.
|
||||
|
||||
COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||
SOLR_VERSION=5.5
|
||||
SOLR_PORT=8983
|
||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
|
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
|
||||
|
||||
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com>
|
||||
LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
|
||||
|
||||
EXPOSE 80
|
||||
|
@ -1,11 +1,12 @@
|
||||
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-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" \
|
||||
&& apt-get update -y \
|
||||
&& apt-get install -y hhvm \
|
||||
@ -14,7 +15,7 @@ RUN apt-get update -y \
|
||||
|
||||
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
|
||||
|
||||
|
@ -25,8 +25,8 @@ VOLUME /var/jenkins_home
|
||||
# or config file with your custom jenkins Docker image.
|
||||
RUN mkdir -p /usr/share/jenkins/ref/init.groovy.d
|
||||
|
||||
ENV TINI_VERSION 0.13.2
|
||||
ENV TINI_SHA afbf8de8a63ce8e4f18cb3f34dfdbbd354af68a1
|
||||
ENV TINI_VERSION 0.16.1
|
||||
ENV TINI_SHA d1cb5d71adc01d47e302ea439d70c79bd0864288
|
||||
|
||||
# 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 \
|
||||
@ -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
|
||||
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
|
||||
ARG JENKINS_SHA=a25b9a314ca9e76f9673da7309e1882e32674223
|
||||
# 2.89.2
|
||||
ARG JENKINS_SHA=014f669f32bc6e925e926e260503670b32662f006799b133a031a70a794c8a14
|
||||
|
||||
|
||||
# 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
|
||||
@ -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
|
||||
# see https://github.com/docker/docker/issues/8331
|
||||
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
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
|
@ -93,7 +93,7 @@ docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS="-Djava.
|
||||
```
|
||||
|
||||
# Configuring reverse proxy
|
||||
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environnement variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
||||
If you want to install Jenkins behind a reverse proxy with prefix, example: mysite.com/jenkins, you need to add environment variable `JENKINS_OPTS="--prefix=/jenkins"` and then follow the below procedures to configure your reverse proxy, which will depend if you have Apache ou Nginx:
|
||||
- [Apache](https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache)
|
||||
- [Nginx](https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+behind+an+NGinX+reverse+proxy)
|
||||
|
||||
@ -154,7 +154,7 @@ COPY custom.groovy /usr/share/jenkins/ref/init.groovy.d/custom.groovy
|
||||
## Preinstalling plugins
|
||||
|
||||
You can rely on the `install-plugins.sh` script to pass a set of plugins to download with their dependencies.
|
||||
Use plugin artifact ID, whithout `-plugin` extension, and append the version if needed separated by `:`.
|
||||
Use plugin artifact ID, without `-plugin` extension, and append the version if needed separated by `:`.
|
||||
Dependencies that are already included in the Jenkins war will only be downloaded if their required version is newer than the one included.
|
||||
|
||||
```
|
||||
|
@ -1,3 +1,3 @@
|
||||
FROM docker.elastic.co/kibana/kibana:5.4.1
|
||||
FROM docker.elastic.co/kibana/kibana:6.2.3
|
||||
|
||||
EXPOSE 5601
|
||||
|
@ -1,15 +1,22 @@
|
||||
FROM node:argon
|
||||
|
||||
FROM node:alpine
|
||||
|
||||
# Create app directory
|
||||
RUN mkdir -p /usr/src/app
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
|
||||
# Install app dependencies
|
||||
COPY package.json /usr/src/app/
|
||||
|
||||
RUN apk add --update \
|
||||
python \
|
||||
python-dev \
|
||||
py-pip \
|
||||
build-base
|
||||
|
||||
RUN npm install
|
||||
|
||||
|
||||
# Bundle app source
|
||||
COPY laravel-echo-server.json /usr/src/app/laravel-echo-server.json
|
||||
|
||||
|
||||
EXPOSE 3000
|
||||
CMD [ "npm", "start" ]
|
||||
CMD [ "npm", "start" ]
|
||||
|
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
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
CMD ["Mailhog"]
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
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"]
|
||||
|
||||
|
@ -8,9 +8,9 @@
|
||||
# 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
|
||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM memcached:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
CMD ["memcached"]
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
FROM minio/minio
|
||||
|
||||
MAINTAINER Thor Erik Lie <thor@thorerik.com>
|
||||
LABEL maintainer="Thor Erik Lie <thor@thorerik.com>"
|
||||
|
||||
ENTRYPOINT ["minio", "server", "/export"]
|
||||
|
@ -1,6 +1,6 @@
|
||||
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
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM microsoft/mssql-server-linux
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# Create config directory
|
||||
# an set it as WORKDIR
|
||||
|
@ -1,6 +1,7 @@
|
||||
FROM mysql:5.7
|
||||
ARG MYSQL_VERSION=latest
|
||||
FROM mysql:${MYSQL_VERSION}
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
#####################################
|
||||
# Set Timezone
|
||||
@ -12,7 +13,7 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
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"]
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
###
|
||||
### Copy createdb.sql.example to createdb.sql
|
||||
### then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# Copy createdb.sql.example to createdb.sql
|
||||
# then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# example: .env MYSQL_USER=appuser and need db name is myshop_db
|
||||
#
|
||||
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
|
||||
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;
|
||||
#
|
||||
###
|
||||
### this sql script is auto run when mysql container start and $DATA_SAVE_PATH/mysql not exists.
|
||||
###
|
||||
### if your $DATA_SAVE_PATH/mysql is exists and you do not want to delete it, you can run by manual execution:
|
||||
###
|
||||
### docker-compose exec mysql bash
|
||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||
###
|
||||
#
|
||||
# this sql script will auto run when the mysql container starts and the $DATA_PATH_HOST/mysql not found.
|
||||
#
|
||||
# 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
|
||||
# mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||
#
|
||||
|
||||
#CREATE DATABASE IF NOT EXISTS `dev_db_1` COLLATE 'utf8_general_ci' ;
|
||||
#GRANT ALL ON `dev_db_1`.* TO 'default'@'%' ;
|
||||
|
@ -7,3 +7,4 @@
|
||||
|
||||
[mysqld]
|
||||
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
|
||||
character-set-server=utf8
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM tpires/neo4j
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
VOLUME /var/lib/neo4j/data
|
||||
|
||||
|
@ -1,20 +1,28 @@
|
||||
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.
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories
|
||||
ARG CHANGE_SOURCE=false
|
||||
RUN if [ ${CHANGE_SOURCE} = true ]; then \
|
||||
# Change application source from dl-cdn.alpinelinux.org to aliyun source
|
||||
sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
|
||||
;fi
|
||||
|
||||
RUN apk update \
|
||||
&& apk upgrade \
|
||||
&& apk add --no-cache bash \
|
||||
&& 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
|
||||
&& adduser -D -H -u 1000 -s /bin/bash www-data
|
||||
|
||||
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
|
||||
|
||||
CMD ["nginx"]
|
||||
|
||||
|
@ -3,8 +3,8 @@ server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name project-1.dev;
|
||||
root /var/www/project-1/public;
|
||||
server_name app.test;
|
||||
root /var/www/app;
|
||||
index index.php index.html index.htm;
|
||||
|
||||
location / {
|
||||
@ -18,6 +18,8 @@ server {
|
||||
fastcgi_buffers 16 16k;
|
||||
fastcgi_buffer_size 32k;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
#fixes timeouts
|
||||
fastcgi_read_timeout 600;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
@ -29,4 +31,7 @@ server {
|
||||
root /var/www/letsencrypt/;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
error_log /var/log/nginx/app_error.log;
|
||||
access_log /var/log/nginx/app_access.log;
|
||||
}
|
@ -18,6 +18,8 @@ server {
|
||||
fastcgi_buffers 16 16k;
|
||||
fastcgi_buffer_size 32k;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
#fixes timeouts
|
||||
fastcgi_read_timeout 600;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,8 @@ server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name project-2.dev;
|
||||
root /var/www/project-2/public;
|
||||
server_name laravel.test;
|
||||
root /var/www/laravel/public;
|
||||
index index.php index.html index.htm;
|
||||
|
||||
location / {
|
||||
@ -18,6 +18,8 @@ server {
|
||||
fastcgi_buffers 16 16k;
|
||||
fastcgi_buffer_size 32k;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
#fixes timeouts
|
||||
fastcgi_read_timeout 600;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
@ -29,4 +31,7 @@ server {
|
||||
root /var/www/letsencrypt/;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
error_log /var/log/nginx/laravel_error.log;
|
||||
access_log /var/log/nginx/laravel_access.log;
|
||||
}
|
36
nginx/sites/symfony.conf.example
Normal file
36
nginx/sites/symfony.conf.example
Normal file
@ -0,0 +1,36 @@
|
||||
server {
|
||||
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
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;
|
||||
}
|
@ -1,10 +1,10 @@
|
||||
FROM percona:5.7
|
||||
|
||||
MAINTAINER DTUNES <diegotdai@gmai.com>
|
||||
LABEL maintainer="DTUNES <diegotdai@gmai.com>"
|
||||
|
||||
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"]
|
||||
|
||||
|
@ -8,9 +8,9 @@
|
||||
# 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
|
||||
### mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
|
||||
|
@ -1,5 +1,10 @@
|
||||
FROM fenglc/pgadmin4
|
||||
|
||||
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
|
||||
|
484
php-fpm/Dockerfile
Normal file
484
php-fpm/Dockerfile
Normal file
@ -0,0 +1,484 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/php-fpm
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
FROM laradock/php-fpm:2.2-${PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
RUN apt-get update -yqq && \
|
||||
pecl channel-update pecl.php.net
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
# SOAP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
rm /etc/apt/preferences.d/no-debian-php && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# pgsql
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PGSQL=false
|
||||
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
# Install the pgsql extension
|
||||
docker-php-ext-install pgsql \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# pgsql client
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PG_CLIENT=false
|
||||
|
||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
# Create folders if not exists (https://github.com/tianon/docker-brew-debian/issues/65)
|
||||
mkdir -p /usr/share/man/man1 && \
|
||||
mkdir -p /usr/share/man/man7 && \
|
||||
# Install the pgsql client
|
||||
apt-get install -y postgresql-client \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install xdebug-2.5.5; \
|
||||
else \
|
||||
pecl install xdebug; \
|
||||
fi && \
|
||||
docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configuration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /usr/local/etc/php/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Blackfire:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
||||
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PHP REDIS EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
printf "\n" | pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Swoole EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install swoole-2.0.11; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
pecl install swoole-2.2.0; \
|
||||
else \
|
||||
pecl install swoole; \
|
||||
fi \
|
||||
fi && \
|
||||
docker-php-ext-enable swoole \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# MongoDB:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
docker-php-ext-enable mongo \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# AMQP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_AMQP=false
|
||||
|
||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
apt-get install librabbitmq-dev -y && \
|
||||
# Install the amqp extension
|
||||
pecl install amqp && \
|
||||
docker-php-ext-enable amqp \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ZipArchive:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# pcntl
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PCNTL=false
|
||||
RUN if [ ${INSTALL_PCNTL} = true]; then \
|
||||
# Installs pcntl, helpful for running Horizon
|
||||
docker-php-ext-install pcntl \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# bcmath:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
# Install the bcmath extension
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# GMP (GNU Multiple Precision):
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_GMP=false
|
||||
|
||||
RUN if [ ${INSTALL_GMP} = true ]; then \
|
||||
# Install the GMP extension
|
||||
apt-get install -y libgmp-dev && \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h \
|
||||
;fi && \
|
||||
docker-php-ext-install gmp \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# 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
|
||||
|
||||
###########################################################################
|
||||
# Exif:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_EXIF=false
|
||||
|
||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
# Enable Exif PHP extentions requirements
|
||||
docker-php-ext-install exif \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PHP Aerospike:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ARG AEROSPIKE_PHP_REPOSITORY
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Fix dependencies for PHPUnit within aerospike extension
|
||||
apt-get -y install sudo wget && \
|
||||
# Install the php aerospike extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz https://github.com/aerospike/aerospike-client-php5/archive/master.tar.gz; \
|
||||
else \
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY}; \
|
||||
fi \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
else \
|
||||
( \
|
||||
cd aerospike-client-php/src \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
fi \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
&& docker-php-ext-enable aerospike \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Opcache:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
###########################################################################
|
||||
# Mysqli Modifications:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MYSQLI=false
|
||||
|
||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
||||
docker-php-ext-install mysqli \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Tokenizer Modifications:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_TOKENIZER=false
|
||||
|
||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
||||
docker-php-ext-install tokenizer \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Human Language and Character Encoding Support:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
# Install intl and requirements
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
||||
docker-php-ext-configure intl && \
|
||||
docker-php-ext-install intl \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# GHOSTSCRIPT:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_GHOSTSCRIPT=false
|
||||
|
||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
|
||||
# Install the ghostscript extension
|
||||
# for PDF editing
|
||||
apt-get install -y \
|
||||
poppler-utils \
|
||||
ghostscript \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# LDAP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get install -y libldap2-dev && \
|
||||
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
|
||||
docker-php-ext-install ldap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# SQL SERVER:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
|
||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
apt-get -y install freetds-dev libsybdb5 \
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so \
|
||||
&& docker-php-ext-install mssql pdo_dblib \
|
||||
&& php -m | grep -q 'mssql' \
|
||||
&& php -m | grep -q 'pdo_dblib' \
|
||||
;else \
|
||||
###########################################################################
|
||||
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
|
||||
###########################################################################
|
||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||
apt-get install -y apt-transport-https gnupg \
|
||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
# Install Dependencies
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Image optimizers:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||
apt-get install -y jpegoptim optipng pngquant gifsicle \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ImageMagick:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_IMAGEMAGICK=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
||||
apt-get install -y libmagickwand-dev imagemagick && \
|
||||
pecl install imagick && \
|
||||
docker-php-ext-enable imagick \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# IMAP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_IMAP=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||
apt-get install -y libc-client-dev libkrb5-dev && \
|
||||
rm -r /var/lib/apt/lists/* && \
|
||||
docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \
|
||||
docker-php-ext-install imap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
COPY ./laravel.ini /usr/local/etc/php/conf.d
|
||||
COPY ./xlaravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
USER root
|
||||
|
||||
# Clean up
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
@ -1,278 +0,0 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/php-fpm
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
FROM laradock/php-fpm:1.4-56
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
#####################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
# pecl install xdebug && docker-php-ext-enable xdebug \
|
||||
# workaround for https://github.com/docker-library/php/issues/133
|
||||
# - Xdebug breaks on access to class static property
|
||||
apt-get install -y php5-xdebug && \
|
||||
echo "zend_extension=/usr/lib/php5/20131226/xdebug.so" > /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# Blackfire:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
||||
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP REDIS EXTENSION FOR PHP 5
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Swoole EXTENSION FOR PHP 5
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl install swoole \
|
||||
&& docker-php-ext-enable swoole \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ZipArchive:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# bcmath:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
# Install the bcmath extension
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Memcached:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
pecl install memcached-2.2.0 && \
|
||||
docker-php-ext-enable memcached \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Exif:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_EXIF=false
|
||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
# Enable Exif PHP extentions requirements
|
||||
docker-php-ext-install exif \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
# Copy aerospike configration for remote debugging
|
||||
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
&& docker-php-ext-enable aerospike \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Opcache:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
#####################################
|
||||
# Mysqli Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MYSQLI=false
|
||||
# MySQL extenstion is available for Php5.6 and lower only
|
||||
COPY ./mysql.ini /usr/local/etc/php/conf.d/mysql.ini
|
||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
||||
docker-php-ext-install mysql && \
|
||||
docker-php-ext-install mysqli \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Tokenizer Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_TOKENIZER=false
|
||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
||||
docker-php-ext-install tokenizer \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Human Language and Character Encoding Support:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
# Install intl and requirements
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
||||
docker-php-ext-configure intl && \
|
||||
docker-php-ext-install intl \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# GHOSTSCRIPT:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_GHOSTSCRIPT=false
|
||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
|
||||
# Install the ghostscript extension for PDF editing
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y poppler-utils ghostscript \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# LDAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y libldap2-dev && \
|
||||
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
|
||||
docker-php-ext-install ldap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# SQL SERVER:
|
||||
#####################################
|
||||
ARG INSTALL_MSSQL=false
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
apt-get -y install php5-sybase freetds-bin && \
|
||||
cp /usr/lib/php5/20131226/*.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226/ && \
|
||||
docker-php-ext-enable mssql pdo pdo_dblib \
|
||||
;fi
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
#RUN rm -r /var/lib/apt/lists/*
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
@ -1,302 +0,0 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/php-fpm
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
FROM laradock/php-fpm:1.4-70
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
#####################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# Blackfire:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
||||
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP REDIS EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Swoole EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl install swoole \
|
||||
&& docker-php-ext-enable swoole \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ZipArchive:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# bcmath:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
# Install the bcmath extension
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Memcached:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
||||
&& 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
|
||||
|
||||
#####################################
|
||||
# Exif:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_EXIF=false
|
||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
# Enable Exif PHP extentions requirements
|
||||
docker-php-ext-install exif \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
# Copy aerospike configration for remote debugging
|
||||
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
&& docker-php-ext-enable aerospike \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Opcache:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
#####################################
|
||||
# Mysqli Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MYSQLI=false
|
||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
||||
docker-php-ext-install mysqli \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Tokenizer Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_TOKENIZER=false
|
||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
||||
docker-php-ext-install tokenizer \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Human Language and Character Encoding Support:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
# Install intl and requirements
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
||||
docker-php-ext-configure intl && \
|
||||
docker-php-ext-install intl \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# GHOSTSCRIPT:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_GHOSTSCRIPT=false
|
||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
|
||||
# Install the ghostscript extension
|
||||
# for PDF editing
|
||||
apt-get update -yqq \
|
||||
&& apt-get install -y \
|
||||
poppler-utils \
|
||||
ghostscript \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# LDAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y libldap2-dev && \
|
||||
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
|
||||
docker-php-ext-install ldap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# SQL SERVER:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
#####################################
|
||||
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
|
||||
#####################################
|
||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||
apt-get update -yqq \
|
||||
&& apt-get install -y apt-transport-https \
|
||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
|
||||
# Install Dependencies
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
|
||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||
;fi
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d/
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
#RUN rm -r /var/lib/apt/lists/*
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
@ -1,309 +0,0 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'php-fpm' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/php-fpm
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/php-fpm/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
FROM laradock/php-fpm:1.4-71
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("mcrypt", "pdo_mysql", "libssl-dev", ....)
|
||||
# are installed on the base image 'laradock/php-fpm' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/php-fpm).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_ZIP_ARCHIVE=true
|
||||
#
|
||||
|
||||
#####################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the soap extension
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install libxml2-dev php-soap && \
|
||||
docker-php-ext-install soap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Install the xdebug extension
|
||||
pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug \
|
||||
;fi
|
||||
|
||||
# Copy xdebug configration for remote debugging
|
||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# Blackfire:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \
|
||||
&& printf "extension=blackfire.so\nblackfire.agent_socket=tcp://blackfire:8707\n" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP REDIS EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis Extension
|
||||
pecl install -o -f redis \
|
||||
&& rm -rf /tmp/pear \
|
||||
&& docker-php-ext-enable redis \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Swoole EXTENSION FOR PHP 7
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
pecl install swoole \
|
||||
&& docker-php-ext-enable swoole \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
docker-php-ext-enable mongodb \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ZipArchive:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_ZIP_ARCHIVE=false
|
||||
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
|
||||
# Install the zip extension
|
||||
docker-php-ext-install zip \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# bcmath:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BCMATH=false
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
# Install the bcmath extension
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Memcached:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MEMCACHED=false
|
||||
RUN if [ ${INSTALL_MEMCACHED} = true ]; then \
|
||||
# Install the php memcached extension
|
||||
curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \
|
||||
&& 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
|
||||
|
||||
#####################################
|
||||
# Exif:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_EXIF=false
|
||||
RUN if [ ${INSTALL_EXIF} = true ]; then \
|
||||
# Enable Exif PHP extentions requirements
|
||||
docker-php-ext-install exif \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
|
||||
# Copy aerospike configration for remote debugging
|
||||
COPY ./aerospike.ini /usr/local/etc/php/conf.d/aerospike.ini
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Fix dependencies for PHPUnit within aerospike extension
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install sudo wget && \
|
||||
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
;fi
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
|
||||
rm /usr/local/etc/php/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Opcache:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_OPCACHE=false
|
||||
RUN if [ ${INSTALL_OPCACHE} = true ]; then \
|
||||
docker-php-ext-install opcache \
|
||||
;fi
|
||||
|
||||
# Copy opcache configration
|
||||
COPY ./opcache.ini /usr/local/etc/php/conf.d/opcache.ini
|
||||
|
||||
#####################################
|
||||
# Mysqli Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MYSQLI=false
|
||||
RUN if [ ${INSTALL_MYSQLI} = true ]; then \
|
||||
docker-php-ext-install mysqli \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Tokenizer Modifications:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_TOKENIZER=false
|
||||
RUN if [ ${INSTALL_TOKENIZER} = true ]; then \
|
||||
docker-php-ext-install tokenizer \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Human Language and Character Encoding Support:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_INTL=false
|
||||
RUN if [ ${INSTALL_INTL} = true ]; then \
|
||||
# Install intl and requirements
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y zlib1g-dev libicu-dev g++ && \
|
||||
docker-php-ext-configure intl && \
|
||||
docker-php-ext-install intl \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# GHOSTSCRIPT:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_GHOSTSCRIPT=false
|
||||
RUN if [ ${INSTALL_GHOSTSCRIPT} = true ]; then \
|
||||
# Install the ghostscript extension
|
||||
# for PDF editing
|
||||
apt-get update -yqq \
|
||||
&& apt-get install -y \
|
||||
poppler-utils \
|
||||
ghostscript \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# LDAP:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get update -yqq && \
|
||||
apt-get install -y libldap2-dev && \
|
||||
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
|
||||
docker-php-ext-install ldap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# SQL SERVER:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
#####################################
|
||||
# Ref from https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-adding-pdo_sqlsrv-and-sqlsrv-to-official-php-image
|
||||
#####################################
|
||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||
apt-get update -yqq && apt-get install -y apt-transport-https \
|
||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
|
||||
# Install Dependencies
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen \
|
||||
|
||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||
;fi
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
ADD ./laravel.ini /usr/local/etc/php/conf.d
|
||||
ADD ./laravel.pool.conf /usr/local/etc/php-fpm.d/
|
||||
|
||||
#RUN rm -r /var/lib/apt/lists/*
|
||||
|
||||
RUN usermod -u 1000 www-data
|
||||
|
||||
WORKDIR /var/www
|
||||
|
||||
CMD ["php-fpm"]
|
||||
|
||||
EXPOSE 9000
|
@ -1,2 +1,3 @@
|
||||
extension=aerospike.so
|
||||
aerospike.udf.lua_system_path=/usr/local/aerospike/lua
|
||||
aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua
|
@ -4,10 +4,13 @@ log_errors=On
|
||||
|
||||
; Maximum amount of memory a script may consume (128MB)
|
||||
; http://php.net/memory-limit
|
||||
memory_limit = 128M
|
||||
memory_limit = 256M
|
||||
; Maximum allowed size for uploaded files.
|
||||
; http://php.net/upload-max-filesize
|
||||
upload_max_filesize = 20M
|
||||
; Sets max size of post data allowed.
|
||||
; http://php.net/post-max-size
|
||||
post_max_size = 20M
|
||||
max_execution_time=600
|
||||
default_socket_timeout=3600
|
||||
request_terminate_timeout=600
|
||||
|
@ -1442,7 +1442,7 @@ session.save_handler = files
|
||||
; where MODE is the octal representation of the mode. Note that this
|
||||
; does not overwrite the process's umask.
|
||||
; http://php.net/session.save-path
|
||||
;session.save_path = "/tmp"
|
||||
session.save_path = "/tmp"
|
||||
|
||||
; Whether to use strict session mode.
|
||||
; Strict session mode does not accept uninitialized session ID and regenerate
|
@ -380,7 +380,7 @@ expose_php = On
|
||||
; Maximum execution time of each script, in seconds
|
||||
; http://php.net/max-execution-time
|
||||
; Note: This directive is hardcoded to 0 for the CLI SAPI
|
||||
max_execution_time = 30
|
||||
max_execution_time = 600
|
||||
|
||||
; Maximum amount of time each script may spend parsing request data. It's a good
|
||||
; idea to limit this time on productions servers in order to eliminate unexpectedly
|
||||
@ -390,7 +390,7 @@ max_execution_time = 30
|
||||
; Development Value: 60 (60 seconds)
|
||||
; Production Value: 60 (60 seconds)
|
||||
; http://php.net/max-input-time
|
||||
max_input_time = 60
|
||||
max_input_time = 120
|
||||
|
||||
; Maximum input variable nesting level
|
||||
; http://php.net/max-input-nesting-level
|
||||
@ -401,7 +401,7 @@ max_input_time = 60
|
||||
|
||||
; Maximum amount of memory a script may consume (128MB)
|
||||
; http://php.net/memory-limit
|
||||
memory_limit = 128M
|
||||
memory_limit = 256M
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Error handling and logging ;
|
||||
@ -1348,7 +1348,7 @@ session.save_handler = files
|
||||
; where MODE is the octal representation of the mode. Note that this
|
||||
; does not overwrite the process's umask.
|
||||
; http://php.net/session.save-path
|
||||
;session.save_path = "/tmp"
|
||||
session.save_path = "/tmp"
|
||||
|
||||
; Whether to use strict session mode.
|
||||
; Strict session mode does not accept uninitialized session ID and regenerate
|
@ -380,7 +380,7 @@ expose_php = On
|
||||
; Maximum execution time of each script, in seconds
|
||||
; http://php.net/max-execution-time
|
||||
; Note: This directive is hardcoded to 0 for the CLI SAPI
|
||||
max_execution_time = 30
|
||||
max_execution_time = 600
|
||||
|
||||
; Maximum amount of time each script may spend parsing request data. It's a good
|
||||
; idea to limit this time on productions servers in order to eliminate unexpectedly
|
||||
@ -390,7 +390,7 @@ max_execution_time = 30
|
||||
; Development Value: 60 (60 seconds)
|
||||
; Production Value: 60 (60 seconds)
|
||||
; http://php.net/max-input-time
|
||||
max_input_time = 60
|
||||
max_input_time = 120
|
||||
|
||||
; Maximum input variable nesting level
|
||||
; http://php.net/max-input-nesting-level
|
||||
@ -401,7 +401,7 @@ max_input_time = 60
|
||||
|
||||
; Maximum amount of memory a script may consume (128MB)
|
||||
; http://php.net/memory-limit
|
||||
memory_limit = 128M
|
||||
memory_limit = 256M
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; Error handling and logging ;
|
||||
@ -1348,7 +1348,7 @@ session.save_handler = files
|
||||
; where MODE is the octal representation of the mode. Note that this
|
||||
; does not overwrite the process's umask.
|
||||
; http://php.net/session.save-path
|
||||
;session.save_path = "/tmp"
|
||||
session.save_path = "/tmp"
|
||||
|
||||
; Whether to use strict session mode.
|
||||
; Strict session mode does not accept uninitialized session ID and regenerate
|
1918
php-fpm/php7.2.ini
Normal file
1918
php-fpm/php7.2.ini
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,13 +1,20 @@
|
||||
; NOTE: The actual debug.so extention is NOT SET HERE but rather (/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini)
|
||||
|
||||
; xdebug.remote_host=dockerhost
|
||||
xdebug.remote_connect_back=1
|
||||
xdebug.remote_port=9000
|
||||
xdebug.idekey=PHPSTORM
|
||||
|
||||
xdebug.remote_autostart=0
|
||||
xdebug.remote_enable=0
|
||||
xdebug.remote_connect_back=0
|
||||
xdebug.cli_color=0
|
||||
xdebug.profiler_enable=0
|
||||
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
|
||||
|
||||
xdebug.remote_handler=dbgp
|
||||
xdebug.remote_mode=req
|
||||
|
||||
xdebug.remote_port=9000
|
||||
xdebug.remote_host=dockerhost
|
||||
xdebug.idekey=PHPSTORM
|
||||
xdebug.var_display_max_children=-1
|
||||
xdebug.var_display_max_data=-1
|
||||
xdebug.var_display_max_depth=-1
|
||||
|
||||
|
@ -3,13 +3,37 @@
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To take a look at the'php-worker' base Image, visit its DockerHub page
|
||||
# https://hub.docker.com/r/nielsvdoorn/laravel-supervisor/
|
||||
#
|
||||
|
||||
FROM nielsvdoorn/laravel-supervisor
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
FROM php:${PHP_VERSION}-alpine
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
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 PostgreSQL drivers:
|
||||
ARG INSTALL_PGSQL=false
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
apk --update add postgresql-dev \
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
;fi
|
||||
|
||||
RUN rm /var/cache/apk/* \
|
||||
&& mkdir -p /var/www
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -19,7 +43,10 @@ MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
# Modify the ./supervisor.conf file to match your App's requirements.
|
||||
# Make sure you rebuild your container with every change.
|
||||
#
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
|
||||
COPY supervisord.conf /etc/supervisord.conf
|
||||
|
||||
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -28,8 +55,15 @@ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
#
|
||||
# If you need to modify this image, feel free to do it right here.
|
||||
#
|
||||
# -- Your awesome modifications go here -- #
|
||||
# -- Your awesome modifications go here -- #
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Check PHP version
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -37,5 +71,4 @@ COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
RUN rm -r /var/lib/apt/lists/*
|
||||
WORKDIR /etc/supervisor/conf.d/
|
||||
|
@ -1,9 +1,10 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
[program:laravel-worker]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
|
||||
autostart=true
|
||||
autorestart=true
|
||||
numprocs=8
|
||||
redirect_stderr=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
|
7
php-worker/supervisord.d/laravel-worker.conf
Normal file
7
php-worker/supervisord.d/laravel-worker.conf
Normal file
@ -0,0 +1,7 @@
|
||||
[program:laravel-worker]
|
||||
process_name=%(program_name)s_%(process_num)02d
|
||||
command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
|
||||
autostart=true
|
||||
autorestart=true
|
||||
numprocs=8
|
||||
redirect_stderr=true
|
@ -1,6 +1,6 @@
|
||||
FROM phpmyadmin/phpmyadmin
|
||||
|
||||
MAINTAINER Bo-Yi Wu <appleboy.tw@gmail.com>
|
||||
LABEL maintainer="Bo-Yi Wu <appleboy.tw@gmail.com>"
|
||||
|
||||
# Add volume for sessions to allow session persistence
|
||||
VOLUME /sessions
|
||||
|
3
portainer/Dockerfile
Normal file
3
portainer/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM portainer/portainer
|
||||
|
||||
LABEL maintainer="luciano@lucianojr.com.br"
|
@ -1,6 +1,6 @@
|
||||
FROM mdillon/postgis:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
CMD ["postgres"]
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
FROM postgres:latest
|
||||
FROM postgres:alpine
|
||||
|
||||
MAINTAINER Ben M <git@bmagg.com>
|
||||
LABEL maintainer="Ben M <git@bmagg.com>"
|
||||
|
||||
CMD ["postgres"]
|
||||
|
||||
EXPOSE 5432
|
||||
EXPOSE 5432
|
||||
|
1
postgres/docker-entrypoint-initdb.d/.gitignore
vendored
Normal file
1
postgres/docker-entrypoint-initdb.d/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.sh
|
34
postgres/docker-entrypoint-initdb.d/createdb.sh.example
Normal file
34
postgres/docker-entrypoint-initdb.d/createdb.sh.example
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copy createdb.sh.example to createdb.sh
|
||||
# then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER myuser WITH PASSWORD 'mypassword';
|
||||
# CREATE DATABASE myshop_db;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
|
||||
# EOSQL
|
||||
#
|
||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
||||
#
|
||||
|
||||
set -e
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||
# CREATE DATABASE db1;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||
# EOSQL
|
||||
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||
# CREATE DATABASE db2;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||
# EOSQL
|
||||
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||
# CREATE DATABASE db3;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
|
||||
# EOSQL
|
@ -1,6 +1,6 @@
|
||||
FROM rabbitmq
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
RUN rabbitmq-plugins enable --offline rabbitmq_management
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM redis:latest
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
## For security settings uncomment, make the dir, copy conf, and also start with the conf, to use it
|
||||
#RUN mkdir -p /usr/local/etc/redis
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM rethinkdb:latest
|
||||
|
||||
MAINTAINER Cristian Mello <cristianc.mello@gmail.com>
|
||||
LABEL maintainer="Cristian Mello <cristianc.mello@gmail.com>"
|
||||
|
||||
VOLUME /data/rethinkdb_data
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
FROM selenium/standalone-chrome
|
||||
|
||||
MAINTAINER Edmund Luong <edmundvmluong@gmail.com>
|
||||
LABEL maintainer="Edmund Luong <edmundvmluong@gmail.com>"
|
||||
|
||||
EXPOSE 4444
|
||||
EXPOSE 4444
|
||||
|
14
solr/Dockerfile
Normal file
14
solr/Dockerfile
Normal file
@ -0,0 +1,14 @@
|
||||
ARG SOLR_VERSION=5.5
|
||||
FROM solr:${SOLR_VERSION}
|
||||
|
||||
ARG SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
ENV SOLR_DATAIMPORTHANDLER_MYSQL ${SOLR_DATAIMPORTHANDLER_MYSQL}
|
||||
|
||||
# download mysql connector for dataimporthandler
|
||||
RUN if [ ${SOLR_DATAIMPORTHANDLER_MYSQL} = true ]; then \
|
||||
curl -L -o /tmp/mysql_connector.tar.gz "https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz" \
|
||||
&& mkdir /opt/solr/contrib/dataimporthandler/lib \
|
||||
&& tar -zxvf /tmp/mysql_connector.tar.gz -C /opt/solr/contrib/dataimporthandler/lib "mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar" --strip-components 1 \
|
||||
&& rm /tmp/mysql_connector.tar.gz \
|
||||
;fi
|
||||
|
89
sync.sh
Executable file
89
sync.sh
Executable file
@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This shell script is an optional tool to simplify
|
||||
# the installation and usage of laradock with docker-sync.
|
||||
|
||||
# Make sure that the DOCKER_SYNC_STRATEGY is set in the .env
|
||||
# DOCKER_SYNC_STRATEGY=native_osx # osx
|
||||
# DOCKER_SYNC_STRATEGY=unison # windows
|
||||
|
||||
# To run, make sure to add permissions to this file:
|
||||
# chmod 755 sync.sh
|
||||
|
||||
# USAGE EXAMPLE:
|
||||
# Install docker-sync: ./sync.sh install
|
||||
# Start sync and services with nginx and mysql: ./sync.sh up nginx mysql
|
||||
# Stop containers and sync: ./sync.sh down
|
||||
|
||||
# prints colored text
|
||||
print_style () {
|
||||
|
||||
if [ "$2" == "info" ] ; then
|
||||
COLOR="96m"
|
||||
elif [ "$2" == "success" ] ; then
|
||||
COLOR="92m"
|
||||
elif [ "$2" == "warning" ] ; then
|
||||
COLOR="93m"
|
||||
elif [ "$2" == "danger" ] ; then
|
||||
COLOR="91m"
|
||||
else #default color
|
||||
COLOR="0m"
|
||||
fi
|
||||
|
||||
STARTCOLOR="\e[$COLOR"
|
||||
ENDCOLOR="\e[0m"
|
||||
|
||||
printf "$STARTCOLOR%b$ENDCOLOR" "$1"
|
||||
}
|
||||
|
||||
display_options () {
|
||||
printf "Available options:\n";
|
||||
print_style " install" "info"; printf "\t\t Installs docker-sync gem on the host machine.\n"
|
||||
print_style " up [services]" "success"; printf "\t Starts docker-sync and runs docker compose.\n"
|
||||
print_style " down" "success"; printf "\t\t\t Stops containers and docker-sync.\n"
|
||||
print_style " bash" "success"; printf "\t\t\t Opens bash on the workspace.\n"
|
||||
print_style " sync" "info"; printf "\t\t\t Manually triggers the synchronization of files.\n"
|
||||
print_style " clean" "danger"; printf "\t\t Removes all files from docker-sync.\n"
|
||||
}
|
||||
|
||||
if [[ $# -eq 0 ]] ; then
|
||||
print_style "Missing arguments.\n" "danger"
|
||||
display_options
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" == "up" ] ; then
|
||||
print_style "Initializing Docker Sync\n" "info"
|
||||
print_style "May take a long time (15min+) on the first run\n" "info"
|
||||
docker-sync start;
|
||||
|
||||
print_style "Initializing Docker Compose\n" "info"
|
||||
shift # removing first argument
|
||||
docker-compose up -d ${@}
|
||||
|
||||
elif [ "$1" == "down" ]; then
|
||||
print_style "Stopping Docker Compose\n" "info"
|
||||
docker-compose stop
|
||||
|
||||
print_style "Stopping Docker Sync\n" "info"
|
||||
docker-sync stop
|
||||
|
||||
elif [ "$1" == "bash" ]; then
|
||||
docker-compose exec workspace bash
|
||||
|
||||
elif [ "$1" == "install" ]; then
|
||||
print_style "Installing docker-sync\n" "info"
|
||||
gem install docker-sync
|
||||
|
||||
elif [ "$1" == "sync" ]; then
|
||||
print_style "Manually triggering sync between host and docker-sync container.\n" "info"
|
||||
docker-sync sync;
|
||||
|
||||
elif [ "$1" == "clean" ]; then
|
||||
print_style "Removing and cleaning up files from the docker-sync container.\n" "warning"
|
||||
docker-sync clean
|
||||
else
|
||||
print_style "Invalid arguments.\n" "danger"
|
||||
display_options
|
||||
exit 1
|
||||
fi
|
@ -26,7 +26,7 @@ if [ -n "${HUGO_VERSION}" ]; then
|
||||
|
||||
# Download hugo binary
|
||||
curl -L https://github.com/spf13/hugo/releases/download/v$HUGO_VERSION/$HUGO_PACKAGE.tar.gz | tar xz
|
||||
mkdir $HOME/bin
|
||||
mkdir -p $HOME/bin
|
||||
mv ./${HUGO_BIN}/${HUGO_BIN} $HOME/bin/hugo
|
||||
|
||||
# Remove existing docs
|
||||
|
@ -1,6 +1,6 @@
|
||||
FROM debian:latest
|
||||
|
||||
MAINTAINER ZeroC0D3 Team<zeroc0d3.team@gmail.com>
|
||||
LABEL maintainer="ZeroC0D3 Team<zeroc0d3.team@gmail.com>"
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
@ -19,8 +19,8 @@ ENV VARNISH_PORT 6081
|
||||
ENV BACKEND_HOST localhost
|
||||
ENV BACKEND_PORT 80
|
||||
|
||||
ADD default.vcl /etc/varnish/default.vcl
|
||||
ADD start.sh /etc/varnish/start.sh
|
||||
COPY default.vcl /etc/varnish/default.vcl
|
||||
COPY start.sh /etc/varnish/start.sh
|
||||
|
||||
RUN chmod +x /etc/varnish/start.sh
|
||||
|
||||
|
804
workspace/Dockerfile
Normal file
804
workspace/Dockerfile
Normal file
@ -0,0 +1,804 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'workspace' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/workspace
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
FROM laradock/workspace:2.2-${PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Start as root
|
||||
USER root
|
||||
|
||||
###########################################################################
|
||||
# Laradock non-root user:
|
||||
###########################################################################
|
||||
|
||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||
ARG PUID=1000
|
||||
ENV PUID ${PUID}
|
||||
ARG PGID=1000
|
||||
ENV PGID ${PGID}
|
||||
|
||||
# always run apt update when start and after add new source list, then clean up at end.
|
||||
RUN apt-get update -yqq && \
|
||||
pecl channel-update pecl.php.net && \
|
||||
groupadd -g ${PGID} laradock && \
|
||||
useradd -u ${PUID} -g laradock -m laradock -G docker_env && \
|
||||
usermod -p "*" laradock
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("php-cli", "git", "vim", ....) are
|
||||
# installed on the base image 'laradock/workspace' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/workspace).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_NODE=false
|
||||
# - ...
|
||||
#
|
||||
|
||||
###########################################################################
|
||||
# Set Timezone
|
||||
###########################################################################
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
###########################################################################
|
||||
# User Aliases
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
COPY ./aliases.sh /root/aliases.sh
|
||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
||||
|
||||
RUN sed -i 's/\r//' /root/aliases.sh && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
chown laradock:laradock /home/laradock/aliases.sh && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc
|
||||
|
||||
USER laradock
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source ~/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# Composer:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
# Add the composer.json
|
||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
||||
|
||||
# Make sure that ~/.composer belongs to laradock
|
||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
||||
|
||||
USER laradock
|
||||
|
||||
# Check if global install need to be ran
|
||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||
|
||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||
# run the install
|
||||
composer global install \
|
||||
;fi
|
||||
|
||||
ARG COMPOSER_REPO_PACKAGIST
|
||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
||||
|
||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
||||
;fi
|
||||
|
||||
# Export composer vendor path
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# Non-root user : PHPUnit path
|
||||
###########################################################################
|
||||
|
||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
||||
USER laradock
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
###########################################################################
|
||||
# Crontab
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
COPY ./crontab /etc/cron.d
|
||||
|
||||
RUN chmod -R 644 /etc/cron.d
|
||||
|
||||
###########################################################################
|
||||
# Drush:
|
||||
###########################################################################
|
||||
|
||||
# Deprecated install of Drush 8 and earlier versions.
|
||||
# Drush 9 and up require Drush to be listed as a composer dependency of your site.
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_DRUSH=false
|
||||
ARG DRUSH_VERSION
|
||||
ENV DRUSH_VERSION ${DRUSH_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||
apt-get -y install mysql-client && \
|
||||
# Install Drush with the phar file.
|
||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/${DRUSH_VERSION}/drush.phar | bash && \
|
||||
chmod +x /usr/local/bin/drush && \
|
||||
drush core-status \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# SOAP:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the PHP SOAP extension
|
||||
apt-get -y install libxml2-dev php${PHP_VERSION}-soap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# LDAP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get install -y libldap2-dev && \
|
||||
apt-get install -y php${PHP_VERSION}-ldap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# IMAP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_IMAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||
apt-get install -y php${PHP_VERSION}-imap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Subversion:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SUBVERSION=false
|
||||
|
||||
RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
|
||||
apt-get install -y subversion \
|
||||
;fi
|
||||
|
||||
|
||||
###########################################################################
|
||||
# xDebug:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y php${PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Blackfire:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
ARG BLACKFIRE_CLIENT_ID
|
||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
||||
ARG BLACKFIRE_CLIENT_TOKEN
|
||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
||||
apt-get update -yqq && \
|
||||
apt-get install blackfire-agent \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ssh:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_WORKSPACE_SSH=false
|
||||
|
||||
COPY insecure_id_rsa /tmp/id_rsa
|
||||
COPY insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||
|
||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||
rm -f /etc/service/sshd/down && \
|
||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||
&& rm -f /tmp/id_rsa* \
|
||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||
&& chmod 400 /root/.ssh/id_rsa \
|
||||
&& cp -rf /root/.ssh /home/laradock \
|
||||
&& chown -R laradock:laradock /home/laradock/.ssh \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# MongoDB:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
echo "extension=mongo.so" >> /etc/php/${PHP_VERSION}/mods-available/mongo.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongo.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# AMQP:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_AMQP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
apt-get install librabbitmq-dev -y && \
|
||||
pecl -q install amqp && \
|
||||
echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PHP REDIS EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis extension
|
||||
printf "\n" | pecl -q install -o -f redis && \
|
||||
echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
|
||||
phpenmod redis \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Swoole EXTENSION
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl -q install swoole-2.0.11; \
|
||||
else \
|
||||
if [ $(php -r "echo PHP_MINOR_VERSION;") = "0" ]; then \
|
||||
pecl install swoole-2.2.0; \
|
||||
else \
|
||||
pecl install swoole; \
|
||||
fi \
|
||||
fi && \
|
||||
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/cli/conf.d/20-swoole.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Drupal Console:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_DRUPAL_CONSOLE=false
|
||||
|
||||
RUN if [ ${INSTALL_DRUPAL_CONSOLE} = true ]; then \
|
||||
apt-get -y install mysql-client && \
|
||||
curl https://drupalconsole.com/installer -L -o drupal.phar && \
|
||||
mv drupal.phar /usr/local/bin/drupal && \
|
||||
chmod +x /usr/local/bin/drupal \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
###########################################################################
|
||||
# Node / NVM:
|
||||
###########################################################################
|
||||
|
||||
# Check if NVM needs to be installed
|
||||
ARG NODE_VERSION=stable
|
||||
ENV NODE_VERSION ${NODE_VERSION}
|
||||
ARG INSTALL_NODE=false
|
||||
ARG INSTALL_NPM_GULP=false
|
||||
ARG INSTALL_NPM_BOWER=false
|
||||
ARG INSTALL_NPM_VUE_CLI=false
|
||||
ARG NPM_REGISTRY
|
||||
ENV NPM_REGISTRY ${NPM_REGISTRY}
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
# Install nvm (A Node Version Manager)
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash \
|
||||
&& . $NVM_DIR/nvm.sh \
|
||||
&& nvm install ${NODE_VERSION} \
|
||||
&& nvm use ${NODE_VERSION} \
|
||||
&& nvm alias ${NODE_VERSION} \
|
||||
&& if [ ${NPM_REGISTRY} ]; then \
|
||||
npm config set registry ${NPM_REGISTRY} \
|
||||
;fi \
|
||||
&& if [ ${INSTALL_NPM_GULP} = true ]; then \
|
||||
npm install -g gulp \
|
||||
;fi \
|
||||
&& if [ ${INSTALL_NPM_BOWER} = true ]; then \
|
||||
npm install -g bower \
|
||||
;fi \
|
||||
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
|
||||
npm install -g vue-cli \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add NVM binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add PATH for node
|
||||
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
|
||||
|
||||
RUN if [ ${NPM_REGISTRY} ]; then \
|
||||
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# YARN:
|
||||
###########################################################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_YARN=false
|
||||
ARG YARN_VERSION=latest
|
||||
ENV YARN_VERSION ${YARN_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
||||
else \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
||||
fi && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add YARN binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PHP Aerospike:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
ARG AEROSPIKE_PHP_REPOSITORY
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Fix dependencies for PHPUnit within aerospike extension
|
||||
apt-get -y install sudo wget && \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
&& echo 'extension=aerospike.so' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PHP V8JS:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_V8JS=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
||||
# Install the php V8JS extension
|
||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -y php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
|
||||
&& pecl install v8js \
|
||||
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Laravel Envoy:
|
||||
###########################################################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_LARAVEL_ENVOY=false
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
||||
# Install the Laravel Envoy
|
||||
composer global require "laravel/envoy=~1.0" \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Laravel Installer:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG COMPOSER_REPO_PACKAGIST
|
||||
ENV COMPOSER_REPO_PACKAGIST ${COMPOSER_REPO_PACKAGIST}
|
||||
|
||||
RUN if [ ${COMPOSER_REPO_PACKAGIST} ]; then \
|
||||
composer config -g repo.packagist composer ${COMPOSER_REPO_PACKAGIST} \
|
||||
;fi
|
||||
|
||||
ARG INSTALL_LARAVEL_INSTALLER=false
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
||||
# Install the Laravel Installer
|
||||
composer global require "laravel/installer" \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Deployer:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_DEPLOYER=false
|
||||
|
||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
||||
# Install the Deployer
|
||||
# Using Phar as currently there is no support for laravel 4 from composer version
|
||||
# Waiting to be resolved on https://github.com/deployphp/deployer/issues/1552
|
||||
curl -LO https://deployer.org/deployer.phar && \
|
||||
mv deployer.phar /usr/local/bin/dep && \
|
||||
chmod +x /usr/local/bin/dep \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Prestissimo:
|
||||
###########################################################################
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_PRESTISSIMO=false
|
||||
|
||||
RUN if [ ${INSTALL_PRESTISSIMO} = true ]; then \
|
||||
# Install Prestissimo
|
||||
composer global require "hirak/prestissimo" \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Linuxbrew:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_LINUXBREW=false
|
||||
|
||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
||||
# Preparation
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y build-essential make cmake scons curl git \
|
||||
ruby autoconf automake autoconf-archive \
|
||||
gettext libtool flex bison \
|
||||
libbz2-dev libcurl4-openssl-dev \
|
||||
libexpat-dev libncurses-dev && \
|
||||
# Install the Linuxbrew
|
||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
# Setup linuxbrew
|
||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# SQL SERVER:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
|
||||
&& php -m | grep -q 'mssql' \
|
||||
&& php -m | grep -q 'pdo_dblib' \
|
||||
;else \
|
||||
###########################################################################
|
||||
# The following steps were taken from
|
||||
# https://github.com/Microsoft/msphpsql/wiki/Install-and-configuration
|
||||
###########################################################################
|
||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||
apt-get update -yqq && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq \
|
||||
unixodbc \
|
||||
unixodbc-dev \
|
||||
libgss3 \
|
||||
odbcinst \
|
||||
msodbcsql \
|
||||
locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
||||
apt-get install -y locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
;fi \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Minio:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
COPY mc/config.json /root/.mc/config.json
|
||||
|
||||
ARG INSTALL_MC=false
|
||||
|
||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
||||
chmod +x /usr/local/bin/mc \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Image optimizers:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_IMAGE_OPTIMIZERS=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGE_OPTIMIZERS} = true ]; then \
|
||||
apt-get install -y jpegoptim optipng pngquant gifsicle && \
|
||||
if [ ${INSTALL_NODE} = true ]; then \
|
||||
. ~/.bashrc && npm install -g svgo \
|
||||
;fi\
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
###########################################################################
|
||||
# Symfony:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SYMFONY=false
|
||||
|
||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
||||
mkdir -p /usr/local/bin \
|
||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
||||
&& chmod a+x /usr/local/bin/symfony \
|
||||
# Symfony 3 alias
|
||||
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
|
||||
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
|
||||
# Symfony 2 alias
|
||||
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
|
||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# PYTHON:
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PYTHON=false
|
||||
|
||||
RUN if [ ${INSTALL_PYTHON} = true ]; then \
|
||||
apt-get -y install python python-pip python-dev build-essential \
|
||||
&& python -m pip install --upgrade pip \
|
||||
&& python -m pip install --upgrade virtualenv \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# ImageMagick:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_IMAGEMAGICK=false
|
||||
|
||||
RUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \
|
||||
apt-get install -y imagemagick php-imagick \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Terraform:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_TERRAFORM=false
|
||||
|
||||
RUN if [ ${INSTALL_TERRAFORM} = true ]; then \
|
||||
apt-get -y install sudo wget unzip \
|
||||
&& wget https://releases.hashicorp.com/terraform/0.10.6/terraform_0.10.6_linux_amd64.zip \
|
||||
&& unzip terraform_0.10.6_linux_amd64.zip \
|
||||
&& mv terraform /usr/local/bin \
|
||||
&& rm terraform_0.10.6_linux_amd64.zip \
|
||||
;fi
|
||||
###########################################################################
|
||||
# pgsql client
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_PG_CLIENT=false
|
||||
|
||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
# Install the pgsql client
|
||||
apt-get -y install postgresql-client \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# nasm
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt-get update -yqq \
|
||||
&& apt-get -yqq install nasm
|
||||
|
||||
###########################################################################
|
||||
# Dusk Dependencies:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG CHROME_DRIVER_VERSION=stable
|
||||
ENV CHROME_DRIVER_VERSION ${CHROME_DRIVER_VERSION}
|
||||
ARG INSTALL_DUSK_DEPS=false
|
||||
|
||||
RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
||||
apt-get -y install zip wget unzip xdg-utils \
|
||||
libxpm4 libxrender1 libgtk2.0-0 libnss3 libgconf-2-4 xvfb \
|
||||
gtk2-engines-pixbuf xfonts-cyrillic xfonts-100dpi xfonts-75dpi \
|
||||
xfonts-base xfonts-scalable x11-apps \
|
||||
&& wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
||||
&& apt-get -y -f install \
|
||||
&& dpkg -i --force-depends google-chrome-stable_current_amd64.deb \
|
||||
&& rm google-chrome-stable_current_amd64.deb \
|
||||
&& wget https://chromedriver.storage.googleapis.com/${CHROME_DRIVER_VERSION}/chromedriver_linux64.zip \
|
||||
&& unzip chromedriver_linux64.zip \
|
||||
&& mv chromedriver /usr/local/bin/ \
|
||||
&& rm chromedriver_linux64.zip \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
USER root
|
||||
|
||||
# Clean up
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
|
||||
rm /var/log/lastlog /var/log/faillog
|
||||
|
||||
# Set default work directory
|
||||
WORKDIR /var/www
|
@ -1,442 +0,0 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'workspace' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/workspace
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
FROM laradock/workspace:1.8-56
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("php5.6-cli", "git", "vim", ....) are
|
||||
# installed on the base image 'laradock/workspace' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/workspace).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_NODE=false
|
||||
# - ...
|
||||
#
|
||||
|
||||
#####################################
|
||||
# Non-Root User:
|
||||
#####################################
|
||||
|
||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||
ARG PUID=1000
|
||||
ARG PGID=1000
|
||||
|
||||
ENV PUID ${PUID}
|
||||
ENV PGID ${PGID}
|
||||
|
||||
RUN groupadd -g ${PGID} laradock && \
|
||||
useradd -u ${PUID} -g laradock -m laradock && \
|
||||
apt-get update -yqq
|
||||
|
||||
#####################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the PHP SOAP extension
|
||||
add-apt-repository -y ppa:ondrej/php && \
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install libxml2-dev php5.6-soap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Set Timezone
|
||||
#####################################
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
#####################################
|
||||
# Composer:
|
||||
#####################################
|
||||
|
||||
# Add the composer.json
|
||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
||||
|
||||
# Make sure that ~/.composer belongs to laradock
|
||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
||||
USER laradock
|
||||
|
||||
# Check if global install need to be ran
|
||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||
# run the install
|
||||
composer global install \
|
||||
;fi
|
||||
|
||||
# Export composer vendor path
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Crontab
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
COPY ./crontab /etc/cron.d
|
||||
RUN chmod -R 644 /etc/cron.d
|
||||
|
||||
#####################################
|
||||
# User Aliases
|
||||
#####################################
|
||||
|
||||
USER laradock
|
||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
|
||||
|
||||
USER root
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php5.6-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/5.6/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||
;fi
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/5.6/cli/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# Blackfire:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
ARG BLACKFIRE_CLIENT_ID
|
||||
ARG BLACKFIRE_CLIENT_TOKEN
|
||||
|
||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
||||
apt-get update -yqq && \
|
||||
apt-get install blackfire-agent \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ssh:
|
||||
#####################################
|
||||
ARG INSTALL_WORKSPACE_SSH=false
|
||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||
|
||||
ADD insecure_id_rsa /tmp/id_rsa
|
||||
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||
|
||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||
rm -f /etc/service/sshd/down && \
|
||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||
&& rm -f /tmp/id_rsa* \
|
||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||
&& chmod 400 /root/.ssh/id_rsa \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
# Check if Mongo needs to be installed
|
||||
ARG INSTALL_MONGO=false
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/5.6/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/5.6/mods-available/mongodb.ini /etc/php/5.6/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Drush:
|
||||
#####################################
|
||||
USER root
|
||||
ENV DRUSH_VERSION 8.1.2
|
||||
ARG INSTALL_DRUSH=false
|
||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||
# Install Drush 8 with the phar file.
|
||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
||||
chmod +x /usr/local/bin/drush && \
|
||||
drush core-status \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
#####################################
|
||||
# Node / NVM:
|
||||
#####################################
|
||||
|
||||
# Check if NVM needs to be installed
|
||||
ARG NODE_VERSION=stable
|
||||
ENV NODE_VERSION ${NODE_VERSION}
|
||||
ARG INSTALL_NODE=false
|
||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
# Install nvm (A Node Version Manager)
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
|
||||
. $NVM_DIR/nvm.sh && \
|
||||
nvm install ${NODE_VERSION} && \
|
||||
nvm use ${NODE_VERSION} && \
|
||||
nvm alias ${NODE_VERSION} && \
|
||||
npm install -g gulp bower vue-cli \
|
||||
;fi
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add NVM binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# YARN:
|
||||
#####################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_YARN=false
|
||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
||||
ARG YARN_VERSION=latest
|
||||
ENV YARN_VERSION ${YARN_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
||||
else \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
||||
fi && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add YARN binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=true
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
|
||||
# Copy aerospike configration for remote debugging
|
||||
COPY ./aerospike.ini /etc/php/5.6/cli/conf.d/aerospike.ini
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
;fi
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
|
||||
rm /etc/php/5.6/cli/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Non-root user : PHPUnit path
|
||||
#####################################
|
||||
|
||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
||||
USER laradock
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Laravel Artisan Alias
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'alias art="php artisan"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Laravel Envoy:
|
||||
#####################################
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_LARAVEL_ENVOY=true
|
||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
||||
# Install the Laravel Envoy
|
||||
composer global require "laravel/envoy=~1.0" \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Laravel Installer:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_LARAVEL_INSTALLER=true
|
||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
||||
# Install the Laravel Installer
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
||||
&& composer global require "laravel/installer" \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
#####################################
|
||||
# Deployer:
|
||||
#####################################
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_DEPLOYER=false
|
||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
||||
|
||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
||||
# Install the Deployer
|
||||
composer global require "deployer/deployer" \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Linuxbrew:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_LINUXBREW=true
|
||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
||||
|
||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
||||
|
||||
# Preparation
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y build-essential make cmake scons curl git \
|
||||
ruby autoconf automake autoconf-archive \
|
||||
gettext libtool flex bison \
|
||||
libbz2-dev libcurl4-openssl-dev \
|
||||
libexpat-dev libncurses-dev && \
|
||||
|
||||
# Install the Linuxbrew
|
||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
||||
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
|
||||
# Setup linuxbrew
|
||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# SQL SERVER:
|
||||
#####################################
|
||||
ARG INSTALL_MSSQL=false
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
apt-get -y install php5.6-sybase freetds-bin freetds-common libsybdb5 \
|
||||
&& echo "extension=pdo_dblib.so" > /etc/php/5.6/cli/conf.d/20-pdo_dblib.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Minio:
|
||||
#####################################
|
||||
USER root
|
||||
ARG INSTALL_MC=false
|
||||
ENV INSTALL_MC ${INSTALL_MC}
|
||||
|
||||
COPY mc/config.json /root/.mc/config.json
|
||||
|
||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
||||
chmod +x /usr/local/bin/mc \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
# Clean up
|
||||
USER root
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# Set default work directory
|
||||
WORKDIR /var/www
|
@ -1,545 +0,0 @@
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Image Setup
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# To edit the 'workspace' base Image, visit its repository on Github
|
||||
# https://github.com/Laradock/workspace
|
||||
#
|
||||
# To change its version, see the available Tags on the Docker Hub:
|
||||
# https://hub.docker.com/r/laradock/workspace/tags/
|
||||
#
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
FROM laradock/workspace:1.8-70
|
||||
|
||||
MAINTAINER Mahmoud Zalt <mahmoud@zalt.me>
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Mandatory Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Mandatory Software's such as ("php7.0-cli", "git", "vim", ....) are
|
||||
# installed on the base image 'laradock/workspace' image. If you want
|
||||
# to add more Software's or remove existing one, you need to edit the
|
||||
# base image (https://github.com/Laradock/workspace).
|
||||
#
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Optional Software's Installation
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
# Optional Software's will only be installed if you set them to `true`
|
||||
# in the `docker-compose.yml` before the build.
|
||||
# Example:
|
||||
# - INSTALL_NODE=false
|
||||
# - ...
|
||||
#
|
||||
|
||||
#####################################
|
||||
# Non-Root User:
|
||||
#####################################
|
||||
|
||||
# Add a non-root user to prevent files being created with root permissions on host machine.
|
||||
ARG PUID=1000
|
||||
ARG PGID=1000
|
||||
|
||||
ENV PUID ${PUID}
|
||||
ENV PGID ${PGID}
|
||||
|
||||
RUN groupadd -g ${PGID} laradock && \
|
||||
useradd -u ${PUID} -g laradock -m laradock && \
|
||||
apt-get update -yqq
|
||||
|
||||
#####################################
|
||||
# SOAP:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
ENV INSTALL_SOAP ${INSTALL_SOAP}
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the PHP SOAP extension
|
||||
add-apt-repository -y ppa:ondrej/php && \
|
||||
apt-get update -yqq && \
|
||||
apt-get -y install libxml2-dev php7.0-soap \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Set Timezone
|
||||
#####################################
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
#####################################
|
||||
# Composer:
|
||||
#####################################
|
||||
|
||||
# Add the composer.json
|
||||
COPY ./composer.json /home/laradock/.composer/composer.json
|
||||
|
||||
# Make sure that ~/.composer belongs to laradock
|
||||
RUN chown -R laradock:laradock /home/laradock/.composer
|
||||
USER laradock
|
||||
|
||||
# Check if global install need to be ran
|
||||
ARG COMPOSER_GLOBAL_INSTALL=false
|
||||
ENV COMPOSER_GLOBAL_INSTALL ${COMPOSER_GLOBAL_INSTALL}
|
||||
RUN if [ ${COMPOSER_GLOBAL_INSTALL} = true ]; then \
|
||||
# run the install
|
||||
composer global install \
|
||||
;fi
|
||||
|
||||
# Export composer vendor path
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Crontab
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
COPY ./crontab /etc/cron.d
|
||||
RUN chmod -R 644 /etc/cron.d
|
||||
|
||||
#####################################
|
||||
# User Aliases
|
||||
#####################################
|
||||
|
||||
USER laradock
|
||||
COPY ./aliases.sh /home/laradock/aliases.sh
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
|
||||
|
||||
USER root
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo "# Load Custom Aliases" >> ~/.bashrc && \
|
||||
echo "source /home/laradock/aliases.sh" >> ~/.bashrc && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
sed -i 's/\r//' /home/laradock/aliases.sh && \
|
||||
sed -i 's/^#! \/bin\/sh/#! \/bin\/bash/' /home/laradock/aliases.sh
|
||||
|
||||
#####################################
|
||||
# xDebug:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php7.0-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/7.0/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||
;fi
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/7.0/cli/conf.d/xdebug.ini
|
||||
|
||||
#####################################
|
||||
# Blackfire:
|
||||
#####################################
|
||||
|
||||
ARG INSTALL_BLACKFIRE=false
|
||||
ARG BLACKFIRE_CLIENT_ID
|
||||
ARG BLACKFIRE_CLIENT_TOKEN
|
||||
|
||||
ENV BLACKFIRE_CLIENT_ID ${BLACKFIRE_CLIENT_ID}
|
||||
ENV BLACKFIRE_CLIENT_TOKEN ${BLACKFIRE_CLIENT_TOKEN}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = false -a ${INSTALL_BLACKFIRE} = true ]; then \
|
||||
curl -L https://packagecloud.io/gpg.key | apt-key add - && \
|
||||
echo "deb http://packages.blackfire.io/debian any main" | tee /etc/apt/sources.list.d/blackfire.list && \
|
||||
apt-get update -yqq && \
|
||||
apt-get install blackfire-agent \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# ssh:
|
||||
#####################################
|
||||
ARG INSTALL_WORKSPACE_SSH=false
|
||||
ENV INSTALL_WORKSPACE_SSH ${INSTALL_WORKSPACE_SSH}
|
||||
|
||||
ADD insecure_id_rsa /tmp/id_rsa
|
||||
ADD insecure_id_rsa.pub /tmp/id_rsa.pub
|
||||
|
||||
RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||
rm -f /etc/service/sshd/down && \
|
||||
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys \
|
||||
&& cat /tmp/id_rsa.pub >> /root/.ssh/id_rsa.pub \
|
||||
&& cat /tmp/id_rsa >> /root/.ssh/id_rsa \
|
||||
&& rm -f /tmp/id_rsa* \
|
||||
&& chmod 644 /root/.ssh/authorized_keys /root/.ssh/id_rsa.pub \
|
||||
&& chmod 400 /root/.ssh/id_rsa \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# MongoDB:
|
||||
#####################################
|
||||
|
||||
# Check if Mongo needs to be installed
|
||||
ARG INSTALL_MONGO=false
|
||||
ENV INSTALL_MONGO ${INSTALL_MONGO}
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/7.0/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/7.0/mods-available/mongodb.ini /etc/php/7.0/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Drush:
|
||||
#####################################
|
||||
USER root
|
||||
ENV DRUSH_VERSION 8.1.2
|
||||
ARG INSTALL_DRUSH=false
|
||||
ENV INSTALL_DRUSH ${INSTALL_DRUSH}
|
||||
RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||
# Install Drush 8 with the phar file.
|
||||
curl -fsSL -o /usr/local/bin/drush https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar | bash && \
|
||||
chmod +x /usr/local/bin/drush && \
|
||||
drush core-status \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
#####################################
|
||||
# Node / NVM:
|
||||
#####################################
|
||||
|
||||
# Check if NVM needs to be installed
|
||||
ARG NODE_VERSION=stable
|
||||
ENV NODE_VERSION ${NODE_VERSION}
|
||||
ARG INSTALL_NODE=false
|
||||
ENV INSTALL_NODE ${INSTALL_NODE}
|
||||
ENV NVM_DIR /home/laradock/.nvm
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
# Install nvm (A Node Version Manager)
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash && \
|
||||
. $NVM_DIR/nvm.sh && \
|
||||
nvm install ${NODE_VERSION} && \
|
||||
nvm use ${NODE_VERSION} && \
|
||||
nvm alias ${NODE_VERSION} && \
|
||||
npm install -g gulp bower vue-cli \
|
||||
;fi
|
||||
|
||||
# Wouldn't execute when added to the RUN statement in the above block
|
||||
# Source NVM when loading bash since ~/.profile isn't loaded on non-login shell
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add NVM binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_NODE} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export NVM_DIR="/home/laradock/.nvm"' >> ~/.bashrc && \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# YARN:
|
||||
#####################################
|
||||
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_YARN=false
|
||||
ENV INSTALL_YARN ${INSTALL_YARN}
|
||||
ARG YARN_VERSION=latest
|
||||
ENV YARN_VERSION ${YARN_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \
|
||||
if [ ${YARN_VERSION} = "latest" ]; then \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash; \
|
||||
else \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version ${YARN_VERSION}; \
|
||||
fi && \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# Add YARN binaries to root's .bashrc
|
||||
USER root
|
||||
|
||||
RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export YARN_DIR="/home/laradock/.yarn"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP Aerospike:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=true
|
||||
ENV INSTALL_AEROSPIKE ${INSTALL_AEROSPIKE}
|
||||
|
||||
# Copy aerospike configration for remote debugging
|
||||
COPY ./aerospike.ini /etc/php/7.0/cli/conf.d/aerospike.ini
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
# Install the php aerospike extension
|
||||
curl -L -o /tmp/aerospike-client-php.tar.gz "https://github.com/aerospike/aerospike-client-php/archive/3.4.14.tar.gz" \
|
||||
&& mkdir -p aerospike-client-php \
|
||||
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
|
||||
&& ( \
|
||||
cd aerospike-client-php/src/aerospike \
|
||||
&& phpize \
|
||||
&& ./build.sh \
|
||||
&& make install \
|
||||
) \
|
||||
&& rm /tmp/aerospike-client-php.tar.gz \
|
||||
;fi
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = false ]; then \
|
||||
rm /etc/php/7.0/cli/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# PHP V8JS:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_V8JS=false
|
||||
ENV INSTALL_V8JS ${INSTALL_V8JS}
|
||||
|
||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
||||
# Install the php V8JS extension
|
||||
add-apt-repository -y ppa:pinepain/libv8-5.4 \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -y php7.0-xml php7.0-dev php-pear libv8-5.4 \
|
||||
&& pecl install v8js \
|
||||
&& echo "extension=v8js.so" >> /etc/php/7.0/cli/php.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Non-root user : PHPUnit path
|
||||
#####################################
|
||||
|
||||
# add ./vendor/bin to non-root user's bashrc (needed for phpunit)
|
||||
USER laradock
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="/var/www/vendor/bin:$PATH"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Laravel Artisan Alias
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
RUN echo "" >> ~/.bashrc && \
|
||||
echo 'alias art="php artisan"' >> ~/.bashrc
|
||||
|
||||
#####################################
|
||||
# Laravel Envoy:
|
||||
#####################################
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_LARAVEL_ENVOY=true
|
||||
ENV INSTALL_LARAVEL_ENVOY ${INSTALL_LARAVEL_ENVOY}
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_ENVOY} = true ]; then \
|
||||
# Install the Laravel Envoy
|
||||
composer global require "laravel/envoy=~1.0" \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Laravel Installer:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_LARAVEL_INSTALLER=true
|
||||
ENV INSTALL_LARAVEL_INSTALLER ${INSTALL_LARAVEL_INSTALLER}
|
||||
|
||||
RUN if [ ${INSTALL_LARAVEL_INSTALLER} = true ]; then \
|
||||
# Install the Laravel Installer
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PATH="~/.composer/vendor/bin:$PATH"' >> ~/.bashrc \
|
||||
&& composer global require "laravel/installer" \
|
||||
;fi
|
||||
|
||||
USER laradock
|
||||
|
||||
#####################################
|
||||
# Deployer:
|
||||
#####################################
|
||||
USER laradock
|
||||
|
||||
ARG INSTALL_DEPLOYER=false
|
||||
ENV INSTALL_DEPLOYER ${INSTALL_DEPLOYER}
|
||||
|
||||
RUN if [ ${INSTALL_DEPLOYER} = true ]; then \
|
||||
# Install the Deployer
|
||||
composer global require "deployer/deployer" \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Linuxbrew:
|
||||
#####################################
|
||||
USER root
|
||||
|
||||
ARG INSTALL_LINUXBREW=true
|
||||
ENV INSTALL_LINUXBREW ${INSTALL_LINUXBREW}
|
||||
|
||||
RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
||||
|
||||
# Preparation
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y build-essential make cmake scons curl git \
|
||||
ruby autoconf automake autoconf-archive \
|
||||
gettext libtool flex bison \
|
||||
libbz2-dev libcurl4-openssl-dev \
|
||||
libexpat-dev libncurses-dev && \
|
||||
|
||||
# Install the Linuxbrew
|
||||
git clone --depth=1 https://github.com/Homebrew/linuxbrew.git ~/.linuxbrew && \
|
||||
|
||||
echo "" >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH"=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
|
||||
# Setup linuxbrew
|
||||
echo 'export LINUXBREWHOME="$HOME/.linuxbrew"' >> ~/.bashrc && \
|
||||
echo 'export PATH="$LINUXBREWHOME/bin:$PATH"' >> ~/.bashrc && \
|
||||
echo 'export MANPATH="$LINUXBREWHOME/man:$MANPATH"' >> ~/.bashrc && \
|
||||
echo 'export PKG_CONFIG_PATH="$LINUXBREWHOME/lib64/pkgconfig:$LINUXBREWHOME/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.bashrc && \
|
||||
echo 'export LD_LIBRARY_PATH="$LINUXBREWHOME/lib64:$LINUXBREWHOME/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# SQL SERVER:
|
||||
#####################################
|
||||
ARG INSTALL_MSSQL=true
|
||||
ENV INSTALL_MSSQL ${INSTALL_MSSQL}
|
||||
|
||||
RUN if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
#####################################
|
||||
# Install Depenencies:
|
||||
#####################################
|
||||
cd / && \
|
||||
apt-get install -y --force-yes wget apt-transport-https curl freetds-common libsybdb5 freetds-bin unixodbc unixodbc-dev && \
|
||||
|
||||
#####################################
|
||||
# The following steps were taken from
|
||||
# Microsoft's github account:
|
||||
# https://github.com/Microsoft/msphpsql/wiki/Dockerfile-for-getting-pdo_sqlsrv-for-PHP-7.0-on-Debian-in-3-ways
|
||||
#####################################
|
||||
|
||||
# Add PHP 7 repository
|
||||
# for Debian jessie
|
||||
# And System upgrade
|
||||
cd / && \
|
||||
echo "deb http://packages.dotdeb.org jessie all" \
|
||||
| tee /etc/apt/sources.list.d/dotdeb.list \
|
||||
&& wget -qO- https://www.dotdeb.org/dotdeb.gpg \
|
||||
| apt-key add - \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get upgrade -qq && \
|
||||
|
||||
# Install UnixODBC
|
||||
# Compile odbc_config as it is not part of unixodbc package
|
||||
cd / && \
|
||||
apt-get install -y whiptail \
|
||||
unixodbc libgss3 odbcinst devscripts debhelper dh-exec dh-autoreconf libreadline-dev libltdl-dev \
|
||||
&& dget -u -x http://http.debian.net/debian/pool/main/u/unixodbc/unixodbc_2.3.1-3.dsc \
|
||||
&& cd unixodbc-*/ \
|
||||
&& ./configure && make && make install \
|
||||
&& cp -v ./exe/odbc_config /usr/local/bin/ && \
|
||||
|
||||
# Fake uname for install.sh
|
||||
printf '#!/bin/bash\nif [ "$*" == "-p" ]; then echo "x86_64"; else /bin/uname "$@"; fi' \
|
||||
| tee /usr/local/bin/uname \
|
||||
&& chmod +x /usr/local/bin/uname && \
|
||||
|
||||
# Microsoft ODBC Driver 13 for Linux
|
||||
# Note: There's a copy of this tar on my hubiC
|
||||
cd / && \
|
||||
wget -nv -O msodbcsql-13.0.0.0.tar.gz \
|
||||
"https://meetsstorenew.blob.core.windows.net/contianerhd/Ubuntu%2013.0%20Tar/msodbcsql-13.0.0.0.tar.gz?st=2016-10-18T17%3A29%3A00Z&se=2022-10-19T17%3A29%3A00Z&sp=rl&sv=2015-04-05&sr=b&sig=cDwPfrouVeIQf0vi%2BnKt%2BzX8Z8caIYvRCmicDL5oknY%3D" \
|
||||
&& tar -xf msodbcsql-13.0.0.0.tar.gz \
|
||||
&& cd msodbcsql-*/ \
|
||||
&& ldd lib64/libmsodbcsql-13.0.so.0.0 \
|
||||
&& ./install.sh install --accept-license \
|
||||
&& ls -l /opt/microsoft/msodbcsql/ \
|
||||
&& odbcinst -q -d -n "ODBC Driver 13 for SQL Server" && \
|
||||
|
||||
|
||||
#####################################
|
||||
# Install sqlsrv y pdo_sqlsrv
|
||||
# extensions:
|
||||
#####################################
|
||||
|
||||
pecl install sqlsrv-4.0.8 && \
|
||||
pecl install pdo_sqlsrv-4.0.8 && \
|
||||
|
||||
#####################################
|
||||
# Set locales for the container
|
||||
#####################################
|
||||
|
||||
apt-get install -y locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
&& echo "extension=sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-sqlsrv.ini \
|
||||
&& echo "extension=pdo_sqlsrv.so" > /etc/php/7.0/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Minio:
|
||||
#####################################
|
||||
USER root
|
||||
ARG INSTALL_MC=false
|
||||
ENV INSTALL_MC ${INSTALL_MC}
|
||||
|
||||
COPY mc/config.json /root/.mc/config.json
|
||||
|
||||
RUN if [ ${INSTALL_MC} = true ]; then\
|
||||
curl -fsSL -o /usr/local/bin/mc https://dl.minio.io/client/mc/release/linux-amd64/mc && \
|
||||
chmod +x /usr/local/bin/mc \
|
||||
;fi
|
||||
|
||||
#####################################
|
||||
# Symfony:
|
||||
#####################################
|
||||
USER root
|
||||
ARG INSTALL_SYMFONY=false
|
||||
ENV INSTALL_SYMFONY ${INSTALL_SYMFONY}
|
||||
RUN if [ ${INSTALL_SYMFONY} = true ]; then \
|
||||
|
||||
mkdir -p /usr/local/bin \
|
||||
&& curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony \
|
||||
&& chmod a+x /usr/local/bin/symfony \
|
||||
|
||||
# Symfony 3 alias
|
||||
&& echo 'alias dev="php bin/console -e=dev"' >> ~/.bashrc \
|
||||
&& echo 'alias prod="php bin/console -e=prod"' >> ~/.bashrc \
|
||||
|
||||
# Symfony 2 alias
|
||||
# && echo 'alias dev="php app/console -e=dev"' >> ~/.bashrc \
|
||||
# && echo 'alias prod="php app/console -e=prod"' >> ~/.bashrc \
|
||||
|
||||
;fi
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
# Final Touch
|
||||
#--------------------------------------------------------------------------
|
||||
#
|
||||
|
||||
# Clean up
|
||||
USER root
|
||||
RUN apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
# Set default work directory
|
||||
WORKDIR /var/www
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user