mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 19:41:16 +00:00
Compare commits
624 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cb046ddd2b | ||
|
|
e687ad15f2 | ||
|
|
70e3fc68ba | ||
|
|
e6564db96d | ||
|
|
b90a13482d | ||
|
|
397175aec8 | ||
|
|
90f5abc2fd | ||
|
|
79f087e21a | ||
|
|
b08e7d5c02 | ||
|
|
0a71f838f2 | ||
|
|
7e3db52406 | ||
|
|
05d8edb2fe | ||
|
|
a671401bf2 | ||
|
|
0d11c229d4 | ||
|
|
20f87ad3ce | ||
|
|
8a7ca18897 | ||
|
|
59b1197c75 | ||
|
|
12e51113a6 | ||
|
|
40c2db6633 | ||
|
|
b4bfb84dcf | ||
|
|
b7a52ff1bd | ||
|
|
9df90b3500 | ||
|
|
0bdc196f43 | ||
|
|
14f9ebe3b8 | ||
|
|
e0cb0c1f5d | ||
|
|
4b9739a99d | ||
|
|
9cbb2d3ddb | ||
|
|
82f9bc2c86 | ||
|
|
4ab9fff38b | ||
|
|
73734b4481 | ||
|
|
3610e5f602 | ||
|
|
a425b5fd82 | ||
|
|
e02e7781c7 | ||
|
|
b42b7789df | ||
|
|
70a19575bb | ||
|
|
e34a8a8792 | ||
|
|
7ed35f19a9 | ||
|
|
573d5fa2e2 | ||
|
|
17b98f785c | ||
|
|
46faa83583 | ||
|
|
a23cdcdfd0 | ||
|
|
b6883cf4be | ||
|
|
8334b38869 | ||
|
|
ed40a191df | ||
|
|
107b39f5a2 | ||
|
|
0b6187fe37 | ||
|
|
b9efb7b1c3 | ||
|
|
f9a5db2cee | ||
|
|
2471921a2a | ||
|
|
fd44d5a2ef | ||
|
|
e9852d26d8 | ||
|
|
465a0284c0 | ||
|
|
c906ff09e0 | ||
|
|
ee7b55fc0f | ||
|
|
cbc27ffffd | ||
|
|
f5f22904fb | ||
|
|
b5467210e1 | ||
|
|
b681725fa5 | ||
|
|
1b02bd11fe | ||
|
|
476a1dee47 | ||
|
|
8213301902 | ||
|
|
ca544c19d2 | ||
|
|
180edab57f | ||
|
|
a2b50e69fd | ||
|
|
b51e640932 | ||
|
|
d8eccbf21a | ||
|
|
4176a5dd70 | ||
|
|
83cc953e55 | ||
|
|
d0949e3fe9 | ||
|
|
ab8a549764 | ||
|
|
d26e6221c4 | ||
|
|
07267f20d0 | ||
|
|
0e4f51c82d | ||
|
|
c35c942bf8 | ||
|
|
a02163b6c1 | ||
|
|
35a3a9a486 | ||
|
|
b72f81edd9 | ||
|
|
a47265e482 | ||
|
|
880a6f17b8 | ||
|
|
b224ecfdd7 | ||
|
|
c17e49b849 | ||
|
|
9a981de73f | ||
|
|
beeff54815 | ||
|
|
6cb03a9890 | ||
|
|
0dc4bd6959 | ||
|
|
a8c3f2c655 | ||
|
|
2655813ab8 | ||
|
|
0011b2e6ed | ||
|
|
52c1a907f9 | ||
|
|
e19d955965 | ||
|
|
c0af9f91a6 | ||
|
|
5f8551e742 | ||
|
|
b774432a7a | ||
|
|
e856fe1da4 | ||
|
|
1ed1c7eb81 | ||
|
|
756b6bc0fe | ||
|
|
4e9969ef75 | ||
|
|
1b67f7b02d | ||
|
|
9fda4fd0a2 | ||
|
|
4858303a1b | ||
|
|
2e3115ef04 | ||
|
|
8989b52602 | ||
|
|
ee6b735f17 | ||
|
|
20b45a0b79 | ||
|
|
687969b59b | ||
|
|
111c8a412f | ||
|
|
1d27f22e3f | ||
|
|
4b8668623b | ||
|
|
7b7a680e0b | ||
|
|
49d9459df8 | ||
|
|
efad9eaa48 | ||
|
|
22231fc61c | ||
|
|
f971d8d4b8 | ||
|
|
5498275047 | ||
|
|
a6f9bd8219 | ||
|
|
ea47aa2ba5 | ||
|
|
5094da0ae6 | ||
|
|
38d4f0c222 | ||
|
|
853962c4e9 | ||
|
|
8d50798d54 | ||
|
|
b50a688add | ||
|
|
99bd1d2cdb | ||
|
|
ac368b8725 | ||
|
|
c815e9040c | ||
|
|
61ccae6fc1 | ||
|
|
f7699f9c84 | ||
|
|
1cab69c0ab | ||
|
|
2158817a05 | ||
|
|
29d34dcdb2 | ||
|
|
ff04507e50 | ||
|
|
a448549b82 | ||
|
|
e808575164 | ||
|
|
643e1a7478 | ||
|
|
f3758cec56 | ||
|
|
ec5d6734fa | ||
|
|
ab91e0794b | ||
|
|
b6f926cf8a | ||
|
|
1609e8ea61 | ||
|
|
389e0bad20 | ||
|
|
e48ceef4a6 | ||
|
|
b659089ff9 | ||
|
|
e8e92eceb7 | ||
|
|
14c25cf670 | ||
|
|
8679dbee6a | ||
|
|
6ccf44b5a9 | ||
|
|
2826053fc0 | ||
|
|
1eb30660a6 | ||
|
|
81ef92f91e | ||
|
|
663f716031 | ||
|
|
ea52cc0969 | ||
|
|
ee14a4d46e | ||
|
|
d894a2bff7 | ||
|
|
cdfca15613 | ||
|
|
d1061273b0 | ||
|
|
1c31dbe3bf | ||
|
|
7975126bdf | ||
|
|
ffaee357fd | ||
|
|
a0e7ae7131 | ||
|
|
7041e6ef0a | ||
|
|
176f48d063 | ||
|
|
dc15215156 | ||
|
|
7693a4ea3f | ||
|
|
4ac5a7ab10 | ||
|
|
2b60cd648d | ||
|
|
492d23b9f8 | ||
|
|
b852001495 | ||
|
|
5eb8ce8187 | ||
|
|
d1fd0addaa | ||
|
|
0aceceabda | ||
|
|
42933391b6 | ||
|
|
436babd549 | ||
|
|
abfeef2e5c | ||
|
|
896c8f6c80 | ||
|
|
7f71dd2493 | ||
|
|
8318b43d2f | ||
|
|
6a00f19e88 | ||
|
|
e97261bc87 | ||
|
|
06ac183215 | ||
|
|
0181f196f6 | ||
|
|
4e5da07e21 | ||
|
|
6c6470c181 | ||
|
|
80f03e7512 | ||
|
|
157945dada | ||
|
|
116aa387fb | ||
|
|
e33041ca55 | ||
|
|
2d489beb2c | ||
|
|
cb9437b4f3 | ||
|
|
9505770a8c | ||
|
|
919a6887a6 | ||
|
|
b352de6939 | ||
|
|
456447070a | ||
|
|
ac508caee4 | ||
|
|
6b4596688c | ||
|
|
98569594bf | ||
|
|
8b9dbdf36b | ||
|
|
fdc024fac3 | ||
|
|
f36d0818b0 | ||
|
|
361192deee | ||
|
|
b937b99641 | ||
|
|
a7b96c7cf5 | ||
|
|
45e25586e3 | ||
|
|
df59c7b7bc | ||
|
|
c18bac4387 | ||
|
|
0239ff0a78 | ||
|
|
02c8c9d6ec | ||
|
|
207b78df6f | ||
|
|
20c5b88e52 | ||
|
|
5585109fb8 | ||
|
|
2517c33bae | ||
|
|
b0c487ff28 | ||
|
|
e16fdce860 | ||
|
|
31489459ad | ||
|
|
64e290a359 | ||
|
|
e145f9cec8 | ||
|
|
40ac8e4ef0 | ||
|
|
1640850b75 | ||
|
|
42a0a4f7ac | ||
|
|
69689351c8 | ||
|
|
865f18a212 | ||
|
|
f0b758e5fc | ||
|
|
d3e642b5f6 | ||
|
|
928c712fa6 | ||
|
|
c818efe5e3 | ||
|
|
ec1a1bd79d | ||
|
|
184881a8c5 | ||
|
|
1782f24d03 | ||
|
|
4cee51dbf4 | ||
|
|
fbcd91f248 | ||
|
|
d2cb8ef2c3 | ||
|
|
f3e7f5d352 | ||
|
|
d3923eb359 | ||
|
|
9a24cfe917 | ||
|
|
0229adf7c1 | ||
|
|
c35262e9b8 | ||
|
|
17649294c2 | ||
|
|
2d428c264a | ||
|
|
72d34ca52f | ||
|
|
6fbbc9580f | ||
|
|
44cc0093ec | ||
|
|
881dd567c9 | ||
|
|
2184f1f9a0 | ||
|
|
e10f81915b | ||
|
|
9fbdc187d8 | ||
|
|
1261f3a700 | ||
|
|
015eaff5d0 | ||
|
|
b5c34feb7c | ||
|
|
61ee6b3bfb | ||
|
|
feb6f0fee8 | ||
|
|
40c3980b3e | ||
|
|
857900acc6 | ||
|
|
7aa26f96d0 | ||
|
|
70ab96876d | ||
|
|
666980dc1c | ||
|
|
b776a9110f | ||
|
|
d1ec52838a | ||
|
|
8d8c92657a | ||
|
|
7a2710ffc5 | ||
|
|
58751d8deb | ||
|
|
3d96f15958 | ||
|
|
c8c71fb115 | ||
|
|
e156582252 | ||
|
|
ae9d987cb9 | ||
|
|
7b68744404 | ||
|
|
c3ad81b808 | ||
|
|
9531a29533 | ||
|
|
ed3449af98 | ||
|
|
5a5bcb1644 | ||
|
|
b0d72726bf | ||
|
|
9f073247f8 | ||
|
|
49e3180891 | ||
|
|
b4df3bc119 | ||
|
|
5aeeb86210 | ||
|
|
0421750699 | ||
|
|
36ef04c0f6 | ||
|
|
b0c3afc0d4 | ||
|
|
5ddf4a044a | ||
|
|
32a7cee28c | ||
|
|
1b12438855 | ||
|
|
c40619c7c0 | ||
|
|
d97348f457 | ||
|
|
f86556c72d | ||
|
|
8e94d09e39 | ||
|
|
7df4f04a04 | ||
|
|
0c664d770e | ||
|
|
e087ed33cc | ||
|
|
2ac845ab74 | ||
|
|
6634169b3f | ||
|
|
f9113317fc | ||
|
|
518d0d908d | ||
|
|
58aa3c6abf | ||
|
|
8d89ed4b02 | ||
|
|
25e0e12fe9 | ||
|
|
15ff7ff2dc | ||
|
|
36a3016370 | ||
|
|
bf81b816c4 | ||
|
|
a6e27c1dcd | ||
|
|
712ad5c66a | ||
|
|
59c30b8f24 | ||
|
|
d903951329 | ||
|
|
89d71a694b | ||
|
|
1d3a03c389 | ||
|
|
bc526403dd | ||
|
|
282c019eb3 | ||
|
|
74030c5c91 | ||
|
|
6be20c28e6 | ||
|
|
28d7ab632e | ||
|
|
395e4d30b4 | ||
|
|
d93387f207 | ||
|
|
c5e3e7257f | ||
|
|
0f7ea87328 | ||
|
|
66b7586eae | ||
|
|
2d4c8647e1 | ||
|
|
f0bb67cbc2 | ||
|
|
1b312bce33 | ||
|
|
6aafdd7023 | ||
|
|
48380c5d98 | ||
|
|
5506d68f1f | ||
|
|
88aeca57aa | ||
|
|
ec8fc4eab6 | ||
|
|
f6015c766a | ||
|
|
f0c625d951 | ||
|
|
a0332b964e | ||
|
|
7c1ceabf97 | ||
|
|
9bc2f1ca31 | ||
|
|
e51d28fcbe | ||
|
|
a002d3aa19 | ||
|
|
114f1b597d | ||
|
|
0b37f92cbb | ||
|
|
6616f336cf | ||
|
|
30f18d858e | ||
|
|
abd10c104b | ||
|
|
9f18603b4d | ||
|
|
d328e8aa67 | ||
|
|
9bddaad387 | ||
|
|
3cdede3519 | ||
|
|
dc98c5cefe | ||
|
|
62c65d19e7 | ||
|
|
b0c7655aca | ||
|
|
6f93613c34 | ||
|
|
6f359ab366 | ||
|
|
add92d6102 | ||
|
|
cdb09fcbee | ||
|
|
6ecd75d59b | ||
|
|
04c051e72f | ||
|
|
d926629879 | ||
|
|
3ca7d92844 | ||
|
|
8864095f8b | ||
|
|
d8be1a89bb | ||
|
|
b15ae8fc84 | ||
|
|
f3669b1bed | ||
|
|
fb36b7151f | ||
|
|
e09e02a7b0 | ||
|
|
8f2a9524fe | ||
|
|
332d03010c | ||
|
|
d9b205f2f1 | ||
|
|
42df419376 | ||
|
|
4be4c2eded | ||
|
|
6a49ffce10 | ||
|
|
ca6b176620 | ||
|
|
7019b00e55 | ||
|
|
c40082e886 | ||
|
|
3f89c534e4 | ||
|
|
c65bd0653b | ||
|
|
89edcd20d8 | ||
|
|
fd0594e3c1 | ||
|
|
bef26e8c27 | ||
|
|
f60c0e8fea | ||
|
|
1fc03c7b0d | ||
|
|
a782cf22ab | ||
|
|
51808ccc1b | ||
|
|
6f901d4bc7 | ||
|
|
b721b3b5ae | ||
|
|
ebd7c5ec37 | ||
|
|
050322cf02 | ||
|
|
5227af8e4c | ||
|
|
9e247307ad | ||
|
|
b095b04ec3 | ||
|
|
5684fac8a2 | ||
|
|
eb6799ad29 | ||
|
|
1c53a0fd68 | ||
|
|
fabc29299c | ||
|
|
83b4cb6b43 | ||
|
|
dc438b0aad | ||
|
|
c8bd21ebbe | ||
|
|
b2476e3851 | ||
|
|
c06a3d2237 | ||
|
|
ce4f022c70 | ||
|
|
9c5326dc0f | ||
|
|
2701a524b9 | ||
|
|
acea0ac0fe | ||
|
|
3153b329f1 | ||
|
|
10285279c7 | ||
|
|
0a04342e46 | ||
|
|
dad684bfd1 | ||
|
|
9fabcf3b71 | ||
|
|
0669d92289 | ||
|
|
6d2053878a | ||
|
|
c3f46d3706 | ||
|
|
de9642c2b5 | ||
|
|
6fa341748b | ||
|
|
5f719f60ce | ||
|
|
ffc8df1906 | ||
|
|
186bf71519 | ||
|
|
422e559ee3 | ||
|
|
eb85e3e288 | ||
|
|
5ed5dd2503 | ||
|
|
1225d564a7 | ||
|
|
a4102e3d7f | ||
|
|
982dd44701 | ||
|
|
bc851cca0f | ||
|
|
ef5b2ed58c | ||
|
|
cbd4f58876 | ||
|
|
fd6550627d | ||
|
|
af150ba371 | ||
|
|
47800a7ede | ||
|
|
d977d941ac | ||
|
|
2ae551e5a5 | ||
|
|
37747d392a | ||
|
|
0a5aadd2a2 | ||
|
|
64c41f7786 | ||
|
|
8bef4c7167 | ||
|
|
58ecd35153 | ||
|
|
55a1333d58 | ||
|
|
fa1ec623d7 | ||
|
|
faa10b9512 | ||
|
|
fc6df6bdaf | ||
|
|
649f667f45 | ||
|
|
0cbd58141d | ||
|
|
965db7f0d5 | ||
|
|
172baf9743 | ||
|
|
fc5e5e21e5 | ||
|
|
529a33f1a0 | ||
|
|
cc77461311 | ||
|
|
f04a5ec693 | ||
|
|
90495fab70 | ||
|
|
f8f485b0bb | ||
|
|
3ad0330bca | ||
|
|
2587886b24 | ||
|
|
3ce6ed507b | ||
|
|
f05301572d | ||
|
|
40d76f355f | ||
|
|
9c1e49b814 | ||
|
|
c1aa814206 | ||
|
|
a382745a2f | ||
|
|
d9d6f2d157 | ||
|
|
9c82fb08c3 | ||
|
|
91733db9e9 | ||
|
|
41fec62672 | ||
|
|
3e9e00e0c2 | ||
|
|
d4a16ba3b3 | ||
|
|
fb7a3e8bff | ||
|
|
dc7336fa3d | ||
|
|
0750ec9339 | ||
|
|
c360bec703 | ||
|
|
1ec8a494e4 | ||
|
|
883a897420 | ||
|
|
7f018000be | ||
|
|
7f3a6f3e64 | ||
|
|
83124e8632 | ||
|
|
806b408878 | ||
|
|
3d15aea68b | ||
|
|
db7c4e6334 | ||
|
|
2c6e013fad | ||
|
|
b35f3a822c | ||
|
|
f20932ce74 | ||
|
|
78d39e57f0 | ||
|
|
6b666d029b | ||
|
|
85b743c822 | ||
|
|
2643b28775 | ||
|
|
bbe1b43474 | ||
|
|
83f57430e5 | ||
|
|
696faf598d | ||
|
|
a0a0738205 | ||
|
|
020d778fca | ||
|
|
cd7424d1f6 | ||
|
|
5ef91da97f | ||
|
|
f59dd5bf6c | ||
|
|
bc01b396a1 | ||
|
|
dd78ed0b71 | ||
|
|
ec7e1cb622 | ||
|
|
91741aaf7f | ||
|
|
87234a6f46 | ||
|
|
a6236b19c7 | ||
|
|
67017e494e | ||
|
|
31864f8335 | ||
|
|
7585081644 | ||
|
|
3e8b4856d1 | ||
|
|
46d1c48104 | ||
|
|
47d2d1f9f5 | ||
|
|
019c3b82d8 | ||
|
|
1817f84301 | ||
|
|
3fd1652455 | ||
|
|
e75b7cb54c | ||
|
|
d68b8dcff0 | ||
|
|
5bd9466995 | ||
|
|
2b53dcab7a | ||
|
|
d286467a6f | ||
|
|
d87857e598 | ||
|
|
a9c8d4fbbe | ||
|
|
be4492795b | ||
|
|
5a10077fe2 | ||
|
|
3075f2afca | ||
|
|
36355c3d60 | ||
|
|
80f8557962 | ||
|
|
3883103a41 | ||
|
|
687a660baa | ||
|
|
6f8f5cc1ea | ||
|
|
f602092471 | ||
|
|
bcbc8e2e45 | ||
|
|
4b21c70b8f | ||
|
|
b943b30b01 | ||
|
|
2df2b8c7eb | ||
|
|
2ab9995e99 | ||
|
|
1e9cb5bcb9 | ||
|
|
bdb61b9c00 | ||
|
|
47e221e210 | ||
|
|
173fd463d3 | ||
|
|
e4dd462ef2 | ||
|
|
4b40a0d932 | ||
|
|
1126319f3d | ||
|
|
56a5cfeb5e | ||
|
|
391502b9eb | ||
|
|
b1c8c8b107 | ||
|
|
81bdfb1026 | ||
|
|
f69a96e16f | ||
|
|
e3ddad4e50 | ||
|
|
dfc3481773 | ||
|
|
6baf6ace61 | ||
|
|
92aed9e7a8 | ||
|
|
e3e0d760e9 | ||
|
|
8b0fdc6cca | ||
|
|
554e979d0e | ||
|
|
ceabd15ee0 | ||
|
|
0e813e6070 | ||
|
|
04ad135df5 | ||
|
|
481d095b39 | ||
|
|
8e907edbdb | ||
|
|
36d9af44e9 | ||
|
|
09b60b78fb | ||
|
|
c57c1eab02 | ||
|
|
ff7b52a025 | ||
|
|
244605f9b5 | ||
|
|
926df09109 | ||
|
|
e10de3dc35 | ||
|
|
812eba69bc | ||
|
|
d1a541c298 | ||
|
|
362ed7b3c5 | ||
|
|
f1211dc7eb | ||
|
|
cf49904400 | ||
|
|
711e52e46c | ||
|
|
3faa0a8245 | ||
|
|
8482667c00 | ||
|
|
409cd5afc9 | ||
|
|
599fd786d7 | ||
|
|
90ecbd62a3 | ||
|
|
1201ee4135 | ||
|
|
a128aa33c0 | ||
|
|
847ea4e6a1 | ||
|
|
1be3fa70f2 | ||
|
|
eefda31e3e | ||
|
|
b1d4c97db4 | ||
|
|
6cd2ef4a1b | ||
|
|
622af7851a | ||
|
|
b2c1b8e453 | ||
|
|
4a1efb6b74 | ||
|
|
e843265575 | ||
|
|
ff0b86c37c | ||
|
|
166eff3347 | ||
|
|
d309c38a41 | ||
|
|
9fedd002e8 | ||
|
|
61352d2451 | ||
|
|
628720af0e | ||
|
|
af427a7e0a | ||
|
|
5b72766680 | ||
|
|
ec82710b48 | ||
|
|
8f53730254 | ||
|
|
cb9826eff5 | ||
|
|
452269c1b0 | ||
|
|
3926ee7c7d | ||
|
|
f376fd6766 | ||
|
|
6e0db69047 | ||
|
|
a645486c84 | ||
|
|
f0bc16ef5f | ||
|
|
bd3585596f | ||
|
|
54a8258bbc | ||
|
|
33bb1f5213 | ||
|
|
16e65379d9 | ||
|
|
333297f8d7 | ||
|
|
ab68fd47a2 | ||
|
|
820c08490a | ||
|
|
ee6917b3ef | ||
|
|
67d056811c | ||
|
|
1728629048 | ||
|
|
dfaef4bd2c | ||
|
|
0aa767e8c9 | ||
|
|
651ef659b6 | ||
|
|
e55469f7c1 | ||
|
|
85991d2e3f | ||
|
|
70764c268c | ||
|
|
023ad2af60 | ||
|
|
4f1a054f8c | ||
|
|
3f08a762f5 | ||
|
|
689703a9b9 | ||
|
|
2f953cd062 | ||
|
|
4fa6afe4e3 | ||
|
|
66a5ce778a | ||
|
|
adc5f28c4d | ||
|
|
1a5600ff86 | ||
|
|
a4bcf2b091 | ||
|
|
152a92386e | ||
|
|
66fa1c195e | ||
|
|
87bc0aa085 | ||
|
|
faff334e14 | ||
|
|
bbe3785091 | ||
|
|
3378d7a10b | ||
|
|
11ef4c6f3f | ||
|
|
f90a3532fc | ||
|
|
59ecc5dc11 | ||
|
|
a2d43259a4 | ||
|
|
2947a465f8 | ||
|
|
9f280dd5b1 | ||
|
|
68f11781f1 | ||
|
|
8d2eee37f1 | ||
|
|
3a29a77925 |
2
.github/FUNDING.yml
vendored
Normal file
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
github: [cytopia]
|
||||
patreon: devilbox
|
||||
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 00:00 on Monday, Wednesday, and Friday
|
||||
schedule:
|
||||
- cron: '0 18 * * 1,3,5'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_master.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 18:00 on Sunday, Tuesday, and Thursday
|
||||
schedule:
|
||||
- cron: '0 18 * * 0,2,4'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_tags.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
298
.github/workflows/action.yml
vendored
Normal file
298
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: build
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Push or pull_request will be determined in jobs.configure.enabled
|
||||
push:
|
||||
pull_request:
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && (github.event.pull_request.user.login != 'cytopia')) }}
|
||||
can_deploy: ${{ (github.repository == 'devilbox/docker-php-fpm') && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release-')) }}
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
pull_base_image: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
52
.github/workflows/linting.yml
vendored
Normal file
52
.github/workflows/linting.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: lint
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
lint:
|
||||
name: "Lint"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Lint repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Lint Files
|
||||
run: |
|
||||
make lint-files
|
||||
|
||||
- name: Lint Yaml
|
||||
run: |
|
||||
make lint-yaml
|
||||
|
||||
- name: Lint Changelog
|
||||
run: |
|
||||
make lint-changelog
|
||||
|
||||
- name: Diff generated Docker files
|
||||
run: |
|
||||
make gen-dockerfiles
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "master",
|
||||
"NUM_LATEST_TAGS": 0
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "",
|
||||
"NUM_LATEST_TAGS": 1
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
71
.github/workflows/params.yml
vendored
Normal file
71
.github/workflows/params.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: params
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Custom Variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
env:
|
||||
VERSIONS: >
|
||||
[
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64"]
|
||||
},
|
||||
{
|
||||
"NAME": "PHP",
|
||||
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||
"FLAVOUR": ["default"],
|
||||
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||
}
|
||||
]
|
||||
REFS: >
|
||||
{
|
||||
"DEFAULT_BRANCH": "master",
|
||||
"BRANCHES": "",
|
||||
"NUM_LATEST_TAGS": 0
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
workflow_call:
|
||||
###
|
||||
### OUTPUTS
|
||||
###
|
||||
outputs:
|
||||
versions:
|
||||
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||
value: ${{ jobs.params.outputs.versions }}
|
||||
refs:
|
||||
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||
value: ${{ jobs.params.outputs.refs }}
|
||||
|
||||
jobs:
|
||||
params:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
versions: ${{ steps.set-versions.outputs.versions }}
|
||||
refs: ${{ steps.set-refs.outputs.refs }}
|
||||
|
||||
steps:
|
||||
- name: "[Set-Output] jsonify VERSIONS"
|
||||
id: set-versions
|
||||
run: |
|
||||
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||
75
.gitignore
vendored
75
.gitignore
vendored
@@ -1,74 +1,3 @@
|
||||
######################################
|
||||
# CUSTOM
|
||||
######################################
|
||||
|
||||
build/ansible/*.retry
|
||||
|
||||
|
||||
|
||||
######################################
|
||||
# GENERIC
|
||||
######################################
|
||||
|
||||
###### std ######
|
||||
.lock
|
||||
*.log
|
||||
|
||||
###### patches/diffs ######
|
||||
*.patch
|
||||
*.diff
|
||||
*.orig
|
||||
*.rej
|
||||
|
||||
|
||||
######################################
|
||||
# Operating Systems
|
||||
######################################
|
||||
|
||||
###### OSX ######
|
||||
._*
|
||||
.DS*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
###### Windows ######
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
*.lnk
|
||||
|
||||
|
||||
######################################
|
||||
# Editors
|
||||
######################################
|
||||
|
||||
###### Sublime ######
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
|
||||
###### Eclipse ######
|
||||
.classpath
|
||||
.buildpath
|
||||
.project
|
||||
.settings/
|
||||
|
||||
###### Netbeans ######
|
||||
nbproject/private/
|
||||
|
||||
###### Intellij IDE ######
|
||||
.idea/
|
||||
.idea_modules/
|
||||
|
||||
###### vim ######
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
###### TextMate ######
|
||||
.tm_properties
|
||||
*.tmproj
|
||||
|
||||
###### BBEdit ######
|
||||
*.bbprojectd
|
||||
*.bbproject
|
||||
Makefile.docker
|
||||
Makefile.lint
|
||||
|
||||
143
.travis.yml
143
.travis.yml
@@ -1,143 +0,0 @@
|
||||
---
|
||||
|
||||
###
|
||||
### Travis settings
|
||||
###
|
||||
sudo: required
|
||||
language: python
|
||||
services:
|
||||
- docker
|
||||
|
||||
|
||||
###
|
||||
### Build Matrix
|
||||
###
|
||||
env:
|
||||
global:
|
||||
- IMAGE: devilbox/php-fpm
|
||||
# travis encrypt DOCKER_USERNAME=user
|
||||
# travis encrypt DOCKER_PASSWORD=pass
|
||||
# Must be regenerated when repository name/owner changes
|
||||
# DOCKER_USERNAME
|
||||
- secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek="
|
||||
# DOCKER_PASSWORD
|
||||
- secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk="
|
||||
matrix:
|
||||
- PHP=5.2
|
||||
- PHP=5.3
|
||||
- PHP=5.4
|
||||
- PHP=5.5
|
||||
- PHP=5.6
|
||||
- PHP=7.0
|
||||
- PHP=7.1
|
||||
- PHP=7.2
|
||||
- PHP=7.3
|
||||
- PHP=7.4
|
||||
|
||||
|
||||
###
|
||||
### Install requirements
|
||||
###
|
||||
install:
|
||||
# Get newer docker version
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
|
||||
- docker version
|
||||
|
||||
# Disable services enabled by default
|
||||
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
||||
- sudo /etc/init.d/httpd stop || true
|
||||
- sudo /etc/init.d/memcached stop || true
|
||||
- sudo /etc/init.d/mongodb stop || true
|
||||
- sudo /etc/init.d/mysql stop || true
|
||||
- sudo /etc/init.d/nginx stop || true
|
||||
- sudo /etc/init.d/postgresql stop || true
|
||||
- sudo /etc/init.d/redis stop || true
|
||||
|
||||
- sudo service httpd stop || true
|
||||
- sudo service memcached stop || true
|
||||
- sudo service mongodb stop || true
|
||||
- sudo service mysql stop || true
|
||||
- sudo service nginx stop || true
|
||||
- sudo service postgresql stop || true
|
||||
- sudo service redis stop || true
|
||||
- netstat -tulpn
|
||||
|
||||
|
||||
###
|
||||
### Check generation changes, build and test
|
||||
###
|
||||
before_script:
|
||||
# Regenerate Dockerfiles and make sure nothing has changed (every stage)
|
||||
- pip install ansible
|
||||
- make generate
|
||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
# Build (multiple tries due to network outages)
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-base-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-mods-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-prod-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-work-${PHP//.}
|
||||
|
||||
# Test if PHP modules have changed
|
||||
- ./build/gen-readme.sh "${PHP}"
|
||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
|
||||
###
|
||||
### Push to Dockerhub
|
||||
###
|
||||
script:
|
||||
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin &&
|
||||
if [ "${TRAVIS_BRANCH}" == "master" ]; then
|
||||
echo "Pushing latest";
|
||||
docker push "${IMAGE}:${PHP}-base";
|
||||
docker push "${IMAGE}:${PHP}-mods";
|
||||
docker push "${IMAGE}:${PHP}-prod";
|
||||
docker push "${IMAGE}:${PHP}-work";
|
||||
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
|
||||
echo "Pushing branch ${TRAVIS_BRANCH}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
|
||||
elif [ -n "${TRAVIS_TAG}" ]; then
|
||||
echo "Pushing tag ${TRAVIS_TAG}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
|
||||
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
|
||||
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
|
||||
echo "Pushing cron tag ${MY_TAG}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${MY_TAG}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-work-${MY_TAG}";
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on normal branches";
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on PR";
|
||||
fi
|
||||
14
.yamllint
Normal file
14
.yamllint
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
# Use 'default' rules
|
||||
extends: default
|
||||
|
||||
# Overwrite above default rules
|
||||
rules:
|
||||
colons:
|
||||
max-spaces-before: 0
|
||||
max-spaces-after: 60
|
||||
comments:
|
||||
require-starting-space: false
|
||||
min-spaces-from-content: 1
|
||||
line-length: disable
|
||||
truthy: disable
|
||||
426
CHANGELOG.md
Normal file
426
CHANGELOG.md
Normal file
@@ -0,0 +1,426 @@
|
||||
# Changelog
|
||||
|
||||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release 0.143
|
||||
|
||||
### Changed
|
||||
- Added `phalcon` 5.x to PHP 8.0 and PHP 8.1
|
||||
|
||||
|
||||
## Release 0.142
|
||||
|
||||
### Fixed
|
||||
- Fixed `phalcon` module
|
||||
- Fixed `swoole` module
|
||||
- Fixed installation of wkhtmltopdf [#245](https://github.com/devilbox/docker-php-fpm/pull/245)
|
||||
- FIxed installation of drupalconsole [#246](https://github.com/devilbox/docker-php-fpm/pull/246)
|
||||
- Fixed installation of symfoni cli [#247](https://github.com/devilbox/docker-php-fpm/pull/247)
|
||||
- Fixed installation of NodeJS
|
||||
- Fixed installation of PostgreSQL client for PHP 5.6
|
||||
- Fixed installation of PostgreSQL client for PHP 7.0
|
||||
- Disabled Phalcon Devtools for PHP 7.4 as it breaks
|
||||
|
||||
|
||||
## Release 0.141
|
||||
|
||||
### Fixed
|
||||
- Fixed correct permission for `/opt/nvm` during startup
|
||||
|
||||
|
||||
## Release 0.140
|
||||
|
||||
### Changed
|
||||
- Ensure apt Jessie repositories are trusted beyond EOL
|
||||
|
||||
|
||||
## Release 0.139
|
||||
|
||||
#### Added
|
||||
- (Re-)added mongodb command line client
|
||||
- (Re-)added postgresql command line client
|
||||
|
||||
### Changed
|
||||
- Speed up `xargs` commands by using multi-CPU
|
||||
- Use buildkit for building
|
||||
|
||||
|
||||
## Release 0.138
|
||||
|
||||
#### Added
|
||||
- Added arm64 support
|
||||
- Added `vips` module for PHP 8.0
|
||||
- Added `vips` module for PHP 8.1
|
||||
- Added `swoole` module for PHP 8.1
|
||||
|
||||
#### Changed
|
||||
- Separated nightly jobs
|
||||
|
||||
|
||||
## Release 0.137
|
||||
|
||||
#### Fixed
|
||||
- Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
|
||||
#### Changed
|
||||
- Ensured CI tests are platform agnostic (amd64 vs arm64)
|
||||
- Ensured CI pipeline will work for long-running jobs
|
||||
|
||||
#### Removed
|
||||
- Removed homebrew due to arm64 issues
|
||||
- Removed postgres cmd client and apt repositories due to arm64 issues
|
||||
- Removed mongodb cmd client and apt repositories due to arm64 issues
|
||||
- Removed Ansible due to arm64 issues
|
||||
|
||||
|
||||
## Release 0.136
|
||||
|
||||
#### Fixed
|
||||
- Fixed `mongodb-org-shell` and `mongodb-org-tools` install
|
||||
|
||||
#### Added
|
||||
- Re-added `mongodb` for PHP 5.3
|
||||
|
||||
#### Changed
|
||||
- Switch PHP 5.4 base image to [devilbox/php-fpm-5.4](https://github.com/devilbox/docker-php-fpm-5.4) for potential arm64 support
|
||||
- Switch PHP 5.5 base image to [devilbox/php-fpm-5.5](https://github.com/devilbox/docker-php-fpm-5.5) for potential arm64 support
|
||||
- Changed base image back to Debian Jessie for PHP 5.2 and PHP 5.3
|
||||
|
||||
|
||||
## Release 0.135
|
||||
|
||||
#### Fixed
|
||||
- Fixed cloning of gitflow
|
||||
- Fixed pidof issue on QUEMU by replacing it with pgrep [#854](https://github.com/cytopia/devilbox/issues/854)
|
||||
|
||||
#### Changed
|
||||
- Changed PHP 5.2 and PHP 5.3 base images to Debian stretch
|
||||
- Removed photoncms binaries (their GitHub organization went private)
|
||||
- Removed `mongodb` extension from PHP 5.3 due to build errors
|
||||
- Removed `ioncube` extension for PHP 5.2, PHP 5.3 and PHP 5.4 (arm64 only supported from PHP 5.5 onwards)
|
||||
- Removed `codeception` from PHP 5.3
|
||||
|
||||
|
||||
## Release 0.134
|
||||
|
||||
#### Changed
|
||||
- Added extension `xdebug` to PHP 8.2
|
||||
|
||||
|
||||
## Release 0.133
|
||||
|
||||
#### Added
|
||||
- Added PHP 8.2: https://github.com/devilbox/docker-php-fpm-8.2
|
||||
|
||||
|
||||
## Release 0.132
|
||||
|
||||
#### Fixed
|
||||
- Fixed `nvm` PATH priority [#846](https://github.com/cytopia/devilbox/issues/846)
|
||||
|
||||
#### Added
|
||||
- added extension `sqlsrv` to php 8.1
|
||||
- added extension `pdo_sqlsrv` to php 8.1
|
||||
|
||||
#### Changed
|
||||
- Changed postfix hostname to `localhost` instead of GitHub runners long name
|
||||
|
||||
|
||||
## Release 0.131
|
||||
|
||||
#### Added
|
||||
- Added binary `sqlite3` to all PHP images [#856](https://github.com/cytopia/devilbox/issues/856)
|
||||
- Added binary `laravel` to PHP 8.0 and PHP 8.1 [#823](https://github.com/cytopia/devilbox/issues/823)
|
||||
- Added AVIF support in GD for PHP 8.1 [#834](https://github.com/cytopia/devilbox/issues/834)
|
||||
- Added extension `amqp` to PHP 8.0 and PHP 8.1 [#826](https://github.com/cytopia/devilbox/issues/826)
|
||||
- Added extension `uploadprogress` to PHP 8.0 and PHP 8.1 [#158](https://github.com/devilbox/docker-php-fpm/pull/158)
|
||||
- Added extension `imagick` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `rdkafka` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `xlswriter` to PHP 8.1
|
||||
- Added extension `pdo_dblib` to PHP 8.1
|
||||
- Added extension `uuid` to all PHP versions (except 5.2)
|
||||
|
||||
#### Changed
|
||||
- Updated `php-cs-fixer` to latest version [#219](https://github.com/devilbox/docker-php-fpm/pull/219)
|
||||
|
||||
|
||||
## Release 0.130
|
||||
|
||||
#### Fixed
|
||||
- Fixed correct keys for `apt`
|
||||
|
||||
#### Added
|
||||
- Added integration checks for `apt update`
|
||||
|
||||
|
||||
## Release 0.129
|
||||
|
||||
#### Fixed
|
||||
- Pinned module: `uploadprogress`
|
||||
- Pinned module: `mongodb`
|
||||
- Pinned lib: `libenchant`
|
||||
- Pinned lib: `libicu`
|
||||
- Pinned lib: `libvpx`
|
||||
- Pinned PHP 8.0: https://github.com/devilbox/docker-php-fpm-8.0/pull/16
|
||||
- Pinned PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1/pull/9
|
||||
- Fixed `pgsql` apt key
|
||||
- Fixed `deployer` download on cert issues
|
||||
- Fixed `phpmd` download on cert issues
|
||||
- Fixed `phpunit` download on cert issues
|
||||
- Fixed `php-cs-fixer` download on cert issues
|
||||
- Fixed building `sockets` on PHP 8.0 and PHP 8.1
|
||||
- Fixed building `ffi` on PHP 7.4
|
||||
|
||||
#### Changed
|
||||
- Removed `mcrypt` from PHP 8.1 as it is not yet supported
|
||||
- Removed `enchant` from PHP 7.3 and PHP 7.4 as libenchant1 is not available via apt
|
||||
- Updated PHP 8.0 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.0/pull/17
|
||||
- Updated PHP 8.1 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.1/pull/10
|
||||
- Updated PostgreSQL repos to Bullseye for PHP >= 7.3
|
||||
- Updated `pip` to use Python3 for PHP >= 7.3
|
||||
|
||||
|
||||
## Release 0.128
|
||||
|
||||
#### Added
|
||||
- Adding `pdo_sqlsrv` to more PHP versions
|
||||
|
||||
|
||||
## Release 0.127
|
||||
|
||||
#### Changed
|
||||
- Adding `swoole` to more PHP 8.0
|
||||
|
||||
|
||||
## Release 0.126
|
||||
|
||||
#### Changed
|
||||
- Added Homebrew for all versions
|
||||
|
||||
|
||||
## Release 0.125
|
||||
|
||||
#### Changed
|
||||
- Re-added `opcache` for PHP 8.1
|
||||
- Pin `ansible` version for all work images
|
||||
- Pin `wp-cli` version for PHP 5.4 and 5.5
|
||||
|
||||
|
||||
## Release 0.124
|
||||
|
||||
#### Fixed
|
||||
- Fixed `pdo_sqlsrv` version for PHP 7.2
|
||||
- Fixed `sqlsrv` version for PHP 7.2
|
||||
- Fixed `swoole` version for PHP 7.1
|
||||
- Fixed pip installation
|
||||
|
||||
#### Changed
|
||||
- Removed `opcache` for PHP 8.1
|
||||
- Removed `xlswriter` for PHP 8.1
|
||||
- Removed `linuxbrew` for all versions
|
||||
- [#201](https://github.com/devilbox/docker-php-fpm/issues/201) Deactivated `psr` and `phalcon` by default
|
||||
- Removed `drush9` from PHP 7.0 and 7.1
|
||||
- Removed `drupalconsole` from PHP 7.0 and 7.1
|
||||
|
||||
|
||||
## Release 0.123
|
||||
|
||||
#### Fixed
|
||||
- Fixex `redis` module compilation for PHP 8.1
|
||||
- Fixed PHP Xdebug v3 defaults to:
|
||||
```ini
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
```
|
||||
|
||||
#### Changed
|
||||
- Removed `pdo_dblib` from PHP 8.1 due to errors
|
||||
|
||||
|
||||
## Release 0.122
|
||||
|
||||
#### Added
|
||||
- Added `apcu`, `blackfire`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.0
|
||||
- Added `apcu`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.1
|
||||
|
||||
#### Changed
|
||||
- Migrate from Travis CI to GitHub Actions
|
||||
|
||||
|
||||
## Release 0.121
|
||||
|
||||
#### Fixed
|
||||
- Fixed `msgpack` install for PHP 7.0 - 7.4
|
||||
|
||||
#### Changed
|
||||
- Compile `redis` extension with `msgpack` and `igbinary`
|
||||
|
||||
|
||||
## Release 0.120
|
||||
|
||||
#### Fixed
|
||||
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||
|
||||
|
||||
## Release 0.119
|
||||
|
||||
#### Fixed
|
||||
- Fixed `drupal` (drupal console launcher) for PHP 5.5, 5.6, 7.0 and 7.1
|
||||
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||
|
||||
|
||||
## Release 0.118
|
||||
|
||||
#### Fixed
|
||||
- Fixed `mdl` rubygem
|
||||
|
||||
#### Added
|
||||
- [#182](https://github.com/devilbox/docker-php-fpm/issues/182) Added `ioncube` to PHP 7.4
|
||||
- Added `sqlsrv` to PHP 7.4
|
||||
|
||||
#### Changed
|
||||
- Updated xdebug to latest possible version
|
||||
|
||||
|
||||
## Release 0.117
|
||||
|
||||
#### Fixed
|
||||
- [#755](https://github.com/cytopia/devilbox/issues/755) Add .composer/vendir/bin to $PATH variable
|
||||
|
||||
#### Added
|
||||
- [#692](https://github.com/cytopia/devilbox/issues/692) Add custom supervisor config mountpoint
|
||||
|
||||
|
||||
## Release 0.116
|
||||
|
||||
#### Fixed
|
||||
- [#749](https://github.com/cytopia/devilbox/issues/749) Fix to disable PHP modules without trailing `*.so` extension
|
||||
|
||||
|
||||
## Release 0.115
|
||||
|
||||
#### Fixed
|
||||
- [#703](https://github.com/cytopia/devilbox/issues/703) Don't fail on uid/gid change
|
||||
|
||||
|
||||
## Release 0.114
|
||||
|
||||
#### Fixed
|
||||
- Use latest PHP 8.0 image
|
||||
- Disabled gd-jis: https://bugs.php.net/bug.php?id=73582
|
||||
|
||||
#### Added
|
||||
- Add PHP 8.1
|
||||
- PHP module mongodb is added to PHP 8.0
|
||||
|
||||
#### Changed
|
||||
- Composer is updated to v2 (/usr/local/bin/composer)
|
||||
- Composer is available as v1 and v2 (/usr/local/bin/composer-[12])
|
||||
|
||||
|
||||
## Release 0.113
|
||||
|
||||
#### Fixed
|
||||
- Fixes nightly build pipeline
|
||||
|
||||
|
||||
## Release 0.112
|
||||
|
||||
#### Fixed
|
||||
- Fixes [166](https://github.com/devilbox/docker-php-fpm/issues/166) Missing `locale-gen` binary
|
||||
|
||||
#### Added
|
||||
- Added vips extension
|
||||
- Added xlswriter extension
|
||||
|
||||
|
||||
## Release 0.111
|
||||
|
||||
#### Added
|
||||
- Added xdebug for PHP 8.0
|
||||
|
||||
|
||||
## Release 0.110
|
||||
|
||||
#### Fixed
|
||||
- [169](https://github.com/devilbox/docker-php-fpm/issues/169) Fixes download for drupal console
|
||||
- Fixes laravel installer for PHP 7.2
|
||||
|
||||
|
||||
## Release 0.109
|
||||
|
||||
#### Fixed
|
||||
- Fixed absolute paths in tests
|
||||
|
||||
|
||||
## Release 0.108
|
||||
|
||||
#### Added
|
||||
- Added ghostscript
|
||||
- Added gsfonts
|
||||
- Added imagick PDF support (via ghostscript)
|
||||
- Added mupdf and mupdf-tools
|
||||
|
||||
#### Fixed
|
||||
- Fixes Ansible installation
|
||||
- Fixes MongoDB for PHP 5.6
|
||||
- Fixes Redis for PHP 8.0
|
||||
- Fixes policy.xml for Imagick
|
||||
|
||||
#### Changed
|
||||
- Stricter version check for installed tools
|
||||
|
||||
|
||||
## Release 0.107
|
||||
|
||||
#### Fixed
|
||||
- Fixes login to Dockerhub for CI jobs
|
||||
- Fixes imagick segfault by setting its threads to 1
|
||||
|
||||
#### Added
|
||||
- Re-added imap for PHP 7.4
|
||||
- Adding `certbot` binary
|
||||
|
||||
|
||||
## Release 0.106
|
||||
|
||||
#### Fixed
|
||||
- [#153](https://github.com/devilbox/docker-php-fpm/pull/153) Use numeric order for startup files
|
||||
- Fix build of PHP-FPM 7.4 snmp module
|
||||
- Disable PHP-FPM 8.0 uploadprogress module due to startup warnings
|
||||
|
||||
|
||||
## Release 0.105
|
||||
|
||||
#### Fixed
|
||||
- Fix pdo_sqlsrv install for PHP 7.1
|
||||
- Fix sqlsrv install for PHP 7.1
|
||||
- Fix composer memory issues during install
|
||||
|
||||
#### Added
|
||||
- `phalcon` binary for PHP 7.3 and 7.4
|
||||
|
||||
|
||||
## Release 0.104
|
||||
|
||||
#### Fixed
|
||||
- Fix xdebug install for PHP 7.0
|
||||
|
||||
|
||||
## Release 0.103
|
||||
|
||||
#### Added
|
||||
- Add PHP [yaml](https://pecl.php.net/package/yaml) module
|
||||
|
||||
|
||||
## Release 0.102
|
||||
|
||||
#### Added
|
||||
- [#144](https://github.com/devilbox/docker-php-fpm/issues/144) Added CHANGELOG
|
||||
|
||||
#### Changed
|
||||
- [#123](https://github.com/devilbox/docker-php-fpm/issues/123) Added Dart Sass and removed Ruby Sass
|
||||
- Replace [scss-lint](https://github.com/sds/scss-lint) with [stylelint](https://github.com/stylelint/stylelint)
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.4-fpm
|
||||
FROM devilbox/php-fpm-5.4
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.5-fpm
|
||||
FROM devilbox/php-fpm-5.5
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.6 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.6-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.6-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.2-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.3-rc-fpm
|
||||
FROM php:7.3-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.3-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-7.4
|
||||
FROM php:7.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.4-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
106
Dockerfiles/base/Dockerfile-8.0
Normal file
106
Dockerfiles/base/Dockerfile-8.0
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.0
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.0"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
106
Dockerfiles/base/Dockerfile-8.1
Normal file
106
Dockerfiles/base/Dockerfile-8.1
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.1
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.1"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
106
Dockerfiles/base/Dockerfile-8.2
Normal file
106
Dockerfiles/base/Dockerfile-8.2
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.2"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -60,10 +60,18 @@ set_uid() {
|
||||
fi
|
||||
# Change uid and fix homedir permissions
|
||||
log "info" "Changing user '${username}' uid to: ${uid}" "${debug}"
|
||||
run "usermod -u ${uid} ${username}" "${debug}"
|
||||
run "chown -R ${username} ${homedir}" "${debug}"
|
||||
if ! run "usermod -u ${uid} ${username} 2>/dev/null" "${debug}"; then
|
||||
run "usermod -u ${uid} ${username}" "${debug}"
|
||||
fi
|
||||
run "chown -R ${username} ${homedir} 2>/dev/null || true" "${debug}"
|
||||
run "chown -R ${username} /var/lib/php/session" "${debug}"
|
||||
run "chown -R ${username} /var/lib/php/wsdlcache" "${debug}"
|
||||
if [ -f "/var/spool/mail/devilbox" ]; then
|
||||
run "chown -R ${username} /var/spool/mail/devilbox" "${debug}"
|
||||
fi
|
||||
if [ -d "/etc/supervisor/custom.d" ]; then
|
||||
run "chown -R ${username} /etc/supervisor/custom.d" "${debug}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -100,12 +108,20 @@ set_gid() {
|
||||
run "groupmod -g ${spare_gid} ${target_groupname}" "${debug}"
|
||||
fi
|
||||
fi
|
||||
# Change ugd and fix homedir permissions
|
||||
# Change gid and fix homedir permissions
|
||||
log "info" "Changing group '${groupname}' gid to: ${gid}" "${debug}"
|
||||
run "groupmod -g ${gid} ${groupname}" "${debug}"
|
||||
run "chown -R :${groupname} ${homedir}" "${debug}"
|
||||
if ! run "groupmod -g ${gid} ${groupname} 2>/dev/null" "${debug}"; then
|
||||
run "groupmod -g ${gid} ${groupname}" "${debug}"
|
||||
fi
|
||||
run "chown -R :${groupname} ${homedir} 2>/dev/null || true" "${debug}"
|
||||
run "chown -R :${groupname} /var/lib/php/session" "${debug}"
|
||||
run "chown -R :${groupname} /var/lib/php/wsdlcache" "${debug}"
|
||||
if [ -f "/var/spool/mail/devilbox" ]; then
|
||||
run "chown -R :${groupname} /var/spool/mail/devilbox" "${debug}"
|
||||
fi
|
||||
if [ -d "/etc/supervisor/custom.d" ]; then
|
||||
run "chown -R :${groupname} /etc/supervisor/custom.d" "${debug}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -p pipefail
|
||||
set -o pipefail
|
||||
|
||||
|
||||
###
|
||||
@@ -52,4 +52,4 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}"
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" "${DEBUG_LEVEL}"
|
||||
exec /usr/local/sbin/php-fpm
|
||||
exec "${@}"
|
||||
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
@@ -10,40 +10,40 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,40 +10,40 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,41 +10,41 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
track_errors = On
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
|
||||
@@ -10,40 +10,39 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
|
||||
@@ -10,40 +10,39 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
|
||||
@@ -10,40 +10,39 @@
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.0.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.0.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.0-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.1-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.2-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1096
Dockerfiles/mods/Dockerfile-8.0
Normal file
1096
Dockerfiles/mods/Dockerfile-8.0
Normal file
File diff suppressed because it is too large
Load Diff
1081
Dockerfiles/mods/Dockerfile-8.1
Normal file
1081
Dockerfiles/mods/Dockerfile-8.1
Normal file
File diff suppressed because it is too large
Load Diff
1029
Dockerfiles/mods/Dockerfile-8.2
Normal file
1029
Dockerfiles/mods/Dockerfile-8.2
Normal file
File diff suppressed because it is too large
Load Diff
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.6 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.6-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.6-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.2-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.3-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,44 +6,56 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.4-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -72,14 +84,10 @@ COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
101
Dockerfiles/prod/Dockerfile-8.0
Normal file
101
Dockerfiles/prod/Dockerfile-8.0
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
122
Dockerfiles/prod/data/docker-entrypoint.d/301-postfix.sh
Executable file
122
Dockerfiles/prod/data/docker-entrypoint.d/301-postfix.sh
Executable file
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Setup Postfix for catch-all
|
||||
###
|
||||
set_postfix() {
|
||||
local env_varname="${1}"
|
||||
local username="${2}"
|
||||
local groupname="${3}"
|
||||
local php_ini_dir="${4}"
|
||||
local php_mail_log="${5}"
|
||||
local docker_logs="${6}"
|
||||
local debug="${7}"
|
||||
|
||||
local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini"
|
||||
local enable_mail=
|
||||
|
||||
# Verify env value
|
||||
if ! env_set "${env_varname}"; then
|
||||
log "info" "\$${env_varname} not set." "${debug}"
|
||||
log "info" "Postfix will not be started." "${debug}"
|
||||
echo "" > "${php_ini_file}"
|
||||
return
|
||||
fi
|
||||
|
||||
# Retrieve env value
|
||||
enable_mail="$( env_get "${env_varname}" )"
|
||||
|
||||
# Enable postfix
|
||||
if [ "${enable_mail}" = "1" ] || [ "${enable_mail}" = "2" ]; then
|
||||
|
||||
if [ "${enable_mail}" = "1" ]; then
|
||||
log "info" "\$${env_varname} set to 1. Enabling postfix" "${debug}"
|
||||
else
|
||||
log "info" "\$${env_varname} set to 2. Enabling postfix catch-all" "${debug}"
|
||||
fi
|
||||
|
||||
# Configure PHP
|
||||
{
|
||||
echo "[mail function]";
|
||||
echo "sendmail_path = $( command -v sendmail ) -t -i";
|
||||
echo ";mail.force_extra_parameters =";
|
||||
echo "mail.add_x_header = On";
|
||||
echo "mail.log = ${php_mail_log}";
|
||||
} > "${php_ini_file}"
|
||||
|
||||
# PHP mail function logs to file
|
||||
if [ "${docker_logs}" != "1" ]; then
|
||||
# Fix PHP mail log file dir/file and permissions
|
||||
if [ ! -d "$( dirname "${php_mail_log}" )" ]; then
|
||||
run "mkdir -p $( dirname "${php_mail_log}" )" "${debug}"
|
||||
fi
|
||||
if [ ! -f "${php_mail_log}" ]; then
|
||||
run "touch ${php_mail_log}" "${debug}"
|
||||
fi
|
||||
run "chown ${username}:${groupname} $( dirname "${php_mail_log}" )" "${debug}"
|
||||
run "chown ${username}:${groupname} ${php_mail_log}" "${debug}"
|
||||
run "chmod 0644 ${php_mail_log}" "${debug}"
|
||||
fi
|
||||
|
||||
# Add Mail dir/file if it does not exist
|
||||
if [ ! -d "/var/mail" ]; then
|
||||
run "mkdir /var/mail" "${debug}"
|
||||
fi
|
||||
if [ ! -f "/var/mail/${username}" ]; then
|
||||
run "touch /var/mail/${username}" "${debug}"
|
||||
fi
|
||||
|
||||
# Fix mail dir/file permissions after mount
|
||||
run "chmod 0644 /var/mail/${username}" "${debug}"
|
||||
run "chown ${username}:${groupname} /var/mail" "${debug}"
|
||||
run "chown ${username}:${groupname} /var/mail/${username}" "${debug}"
|
||||
|
||||
# warning: specify "strict_mailbox_ownership = no" to ignore mailbox ownership mismatch
|
||||
run "postconf -e 'strict_mailbox_ownership=no'" "${debug}"
|
||||
|
||||
# Postfix configuration
|
||||
run "postconf -e 'inet_protocols=ipv4'" "${debug}"
|
||||
|
||||
# Postfix catch-all
|
||||
if [ "${enable_mail}" = "2" ]; then
|
||||
run "postconf -e 'myhostname=localhost'" "${debug}"
|
||||
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
||||
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
||||
run "newaliases" "${debug}"
|
||||
fi
|
||||
|
||||
elif [ "${enable_mail}" = "0" ]; then
|
||||
log "info" "\$${env_varname} set to 0. Disabling postfix" "${debug}"
|
||||
|
||||
else
|
||||
log "err" "Invalid value for \$${env_varname}. Can only be 0, 1 or 2. Prodived: ${enable_mail}" "${debug}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
# Sanity Checks
|
||||
############################################################
|
||||
|
||||
if ! command -v sendmail >/dev/null 2>&1; then
|
||||
log "err" "sendmail not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v postconf >/dev/null 2>&1; then
|
||||
log "err" "postconf not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v newaliases >/dev/null 2>&1; then
|
||||
log "err" "newaliases not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
@@ -33,7 +33,7 @@ disable_modules() {
|
||||
mod="$( echo "${mod}" | xargs )" # trim
|
||||
|
||||
# Find all config files that enable that module
|
||||
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${cfg_path}" || true )"
|
||||
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}(\\.so)?\$" "${cfg_path}" || true )"
|
||||
|
||||
if [ -n "${files}" ]; then
|
||||
while read -r f; do
|
||||
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Setup Postfix for catch-all
|
||||
###
|
||||
set_postfix() {
|
||||
local env_varname="${1}"
|
||||
local username="${2}"
|
||||
local groupname="${3}"
|
||||
local php_ini_dir="${4}"
|
||||
local php_mail_log="${5}"
|
||||
local docker_logs="${6}"
|
||||
local debug="${7}"
|
||||
|
||||
local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini"
|
||||
local catch_all=
|
||||
|
||||
if ! env_set "${env_varname}"; then
|
||||
log "info" "\$${env_varname} not set." "${debug}"
|
||||
log "info" "Postfix will not be started." "${debug}"
|
||||
echo "" > "${php_ini_file}"
|
||||
else
|
||||
catch_all="$( env_get "${env_varname}" )"
|
||||
if [ "${catch_all}" = "1" ]; then
|
||||
log "info" "\$${env_varname} set to 1. Enabling postfix catch-all" "${debug}"
|
||||
|
||||
# Configure PHP
|
||||
{
|
||||
echo "[mail function]";
|
||||
echo "sendmail_path = $( which sendmail ) -t -i";
|
||||
echo ";mail.force_extra_parameters =";
|
||||
echo "mail.add_x_header = On";
|
||||
echo "mail.log = ${php_mail_log}";
|
||||
} > "${php_ini_file}"
|
||||
|
||||
# PHP mail function logs to file
|
||||
if [ "${docker_logs}" != "1" ]; then
|
||||
# Fix PHP mail log file dir/file and permissions
|
||||
if [ ! -d "$( dirname "${php_mail_log}" )" ]; then
|
||||
run "mkdir -p $( dirname "${php_mail_log}" )" "${debug}"
|
||||
fi
|
||||
if [ ! -f "${php_mail_log}" ]; then
|
||||
run "touch ${php_mail_log}" "${debug}"
|
||||
fi
|
||||
run "chown ${username}:${groupname} $( dirname "${php_mail_log}" )" "${debug}"
|
||||
run "chown ${username}:${groupname} ${php_mail_log}" "${debug}"
|
||||
run "chmod 0644 ${php_mail_log}" "${debug}"
|
||||
fi
|
||||
|
||||
# Add Mail dir/file if it does not exist
|
||||
if [ ! -d "/var/mail" ]; then
|
||||
run "mkdir /var/mail" "${debug}"
|
||||
fi
|
||||
if [ ! -f "/var/mail/${username}" ]; then
|
||||
run "touch /var/mail/${username}" "${debug}"
|
||||
fi
|
||||
|
||||
# Fix mail dir/file permissions after mount
|
||||
run "chmod 0644 /var/mail/${username}" "${debug}"
|
||||
run "chown ${username}:${groupname} /var/mail" "${debug}"
|
||||
run "chown ${username}:${groupname} /var/mail/${username}" "${debug}"
|
||||
|
||||
# warning: specify "strict_mailbox_ownership = no" to ignore mailbox ownership mismatch
|
||||
run "postconf -e 'strict_mailbox_ownership=no'" "${debug}"
|
||||
|
||||
# Postfix configuration
|
||||
run "postconf -e 'inet_protocols=ipv4'" "${debug}"
|
||||
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
||||
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
||||
|
||||
run "newaliases" "${debug}"
|
||||
|
||||
elif [ "${catch_all}" = "0" ]; then
|
||||
log "info" "\$${env_varname} set to 0. Disabling postfix catch-all" "${debug}"
|
||||
|
||||
else
|
||||
log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Prodived: ${catch_all}" "${debug}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
# Sanity Checks
|
||||
############################################################
|
||||
|
||||
if ! command -v sendmail >/dev/null 2>&1; then
|
||||
log "err" "sendmail not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v postconf >/dev/null 2>&1; then
|
||||
log "err" "postconf not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v newaliases >/dev/null 2>&1; then
|
||||
log "err" "newaliases not found, but required." "1"
|
||||
exit 1
|
||||
fi
|
||||
49
Dockerfiles/prod/data/docker-entrypoint.d/310-custom-startup-scripts.sh
Executable file
49
Dockerfiles/prod/data/docker-entrypoint.d/310-custom-startup-scripts.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
|
||||
############################################################
|
||||
# Functions
|
||||
############################################################
|
||||
|
||||
###
|
||||
### Execute custom uesr-supplied scripts
|
||||
###
|
||||
execute_custom_scripts() {
|
||||
local script_dir="${1}"
|
||||
local debug="${2}"
|
||||
|
||||
if [ ! -d "${script_dir}" ]; then
|
||||
run "mkdir -p ${script_dir}" "${debug}"
|
||||
fi
|
||||
script_files="$( find -L "${script_dir}" -type f -iname '*.sh' | sort -n )"
|
||||
|
||||
# loop over them line by line
|
||||
IFS='
|
||||
'
|
||||
for script_f in ${script_files}; do
|
||||
script_name="$( basename "${script_f}" )"
|
||||
log "info" "Executing custom startup script: ${script_name}" "${debug}"
|
||||
if ! bash "${script_f}"; then
|
||||
log "err" "Failed to execute script" "${debug}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
############################################################
|
||||
# Sanity Checks
|
||||
############################################################
|
||||
|
||||
if ! command -v find >/dev/null 2>&1; then
|
||||
echo "find not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v basename >/dev/null 2>&1; then
|
||||
echo "basename not found, but required."
|
||||
exit 1
|
||||
fi
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -p pipefail
|
||||
set -o pipefail
|
||||
|
||||
|
||||
###
|
||||
@@ -16,38 +16,38 @@ set -p pipefail
|
||||
# MY_GID
|
||||
|
||||
# Path to scripts to source
|
||||
CONFIG_DIR="/docker-entrypoint.d"
|
||||
DVL_CONFIG_DIR="/docker-entrypoint.d"
|
||||
|
||||
# php.ini.d directory
|
||||
PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
||||
DVL_PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
||||
|
||||
# php-fpm conf.d directory
|
||||
PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
PHP_MAIL_LOG="/var/log/mail.log"
|
||||
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||
|
||||
# This file holds error and access log definitions
|
||||
PHP_FPM_CONF_LOGFILE="${PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||
PHP_INI_CONF_LOGFILE="${PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
|
||||
# PHP-FPM log dir
|
||||
FPM_LOG_DIR="/var/log/php"
|
||||
DVL_FPM_LOG_DIR="/var/log/php"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
DVL_PHP_MAIL_LOG="${DVL_FPM_LOG_DIR}/mail.log"
|
||||
|
||||
# Custom ini dir (to be copied to actual ini dir)
|
||||
PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||
|
||||
# Custom PHP-FPM dir (to be copied to actual FPM conf dir)
|
||||
PHP_CUST_FPM_DIR="/etc/php-fpm-custom.d"
|
||||
DVL_PHP_CUST_FPM_DIR="/etc/php-fpm-custom.d"
|
||||
|
||||
# Supervisord config directory
|
||||
SUPERVISOR_CONFD="/etc/supervisor/conf.d"
|
||||
DVL_SUPERVISOR_CONFD="/etc/supervisor/conf.d"
|
||||
|
||||
|
||||
###
|
||||
### Source libs
|
||||
###
|
||||
init="$( find "${CONFIG_DIR}" -name '*.sh' -type f | sort -u )"
|
||||
init="$( find "${DVL_CONFIG_DIR}" -name '*.sh' -type f | sort -u )"
|
||||
for f in ${init}; do
|
||||
# shellcheck disable=SC1090
|
||||
. "${f}"
|
||||
@@ -76,7 +76,7 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}"
|
||||
###
|
||||
### Set timezone
|
||||
###
|
||||
set_timezone "TIMEZONE" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
|
||||
set_timezone "TIMEZONE" "${DVL_PHP_INI_DIR}" "${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
###
|
||||
@@ -92,9 +92,9 @@ fi
|
||||
###
|
||||
set_docker_logs \
|
||||
"DOCKER_LOGS" \
|
||||
"${FPM_LOG_DIR}" \
|
||||
"${PHP_FPM_CONF_LOGFILE}" \
|
||||
"${PHP_INI_CONF_LOGFILE}" \
|
||||
"${DVL_FPM_LOG_DIR}" \
|
||||
"${DVL_PHP_FPM_CONF_LOGFILE}" \
|
||||
"${DVL_PHP_INI_CONF_LOGFILE}" \
|
||||
"${MY_USER}" \
|
||||
"${MY_GROUP}" \
|
||||
"${DEBUG_LEVEL}"
|
||||
@@ -105,10 +105,10 @@ set_docker_logs \
|
||||
###
|
||||
if is_docker_logs_enabled "DOCKER_LOGS" >/dev/null; then
|
||||
# PHP mail function should log to stderr
|
||||
set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${PHP_INI_DIR}" "/proc/self/fd/2" "1" "${DEBUG_LEVEL}"
|
||||
set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${DVL_PHP_INI_DIR}" "/proc/self/fd/2" "1" "${DEBUG_LEVEL}"
|
||||
else
|
||||
# PHP mail function should log to file
|
||||
set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${PHP_INI_DIR}" "${PHP_MAIL_LOG}" "0" "${DEBUG_LEVEL}"
|
||||
set_postfix "ENABLE_MAIL" "${MY_USER}" "${MY_GROUP}" "${DVL_PHP_INI_DIR}" "${DVL_PHP_MAIL_LOG}" "0" "${DEBUG_LEVEL}"
|
||||
fi
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@ for line in $( port_forward_get_lines "FORWARD_PORTS_TO_LOCALHOST" ); do
|
||||
supervisor_add_service \
|
||||
"socat-${lport}-${rhost}-${rport}" \
|
||||
"/usr/bin/socat tcp-listen:${lport},reuseaddr,fork tcp:${rhost}:${rport}" \
|
||||
"${SUPERVISOR_CONFD}" \
|
||||
"${DVL_SUPERVISOR_CONFD}" \
|
||||
"${DEBUG_LEVEL}"
|
||||
done
|
||||
|
||||
@@ -138,31 +138,31 @@ done
|
||||
###
|
||||
### Supervisor: rsyslogd & postfix
|
||||
###
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
|
||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ] || [ "$( env_get "ENABLE_MAIL" )" = "2" ]; then
|
||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Supervisor: php-fpm
|
||||
###
|
||||
supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
supervisor_add_service "php-fpm" "/usr/local/sbin/php-fpm" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
###
|
||||
### Copy custom *.ini files
|
||||
###
|
||||
copy_ini_files "${PHP_CUST_INI_DIR}" "${PHP_INI_DIR}" "${DEBUG_LEVEL}"
|
||||
copy_ini_files "${DVL_PHP_CUST_INI_DIR}" "${DVL_PHP_INI_DIR}" "${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
###
|
||||
### Copy custom PHP-FPM *.conf files
|
||||
###
|
||||
if [ "${PHP_VERSION}" = "5.2" ]; then
|
||||
copy_fpm_5_2_conf_file "${PHP_CUST_FPM_DIR}/php-fpm.xml" "${DEBUG_LEVEL}"
|
||||
copy_fpm_5_2_conf_file "${DVL_PHP_CUST_FPM_DIR}/php-fpm.xml" "${DEBUG_LEVEL}"
|
||||
else
|
||||
copy_fpm_files "${PHP_CUST_FPM_DIR}" "${PHP_FPM_DIR}" "${DEBUG_LEVEL}"
|
||||
copy_fpm_files "${DVL_PHP_CUST_FPM_DIR}" "${DVL_PHP_FPM_DIR}" "${DEBUG_LEVEL}"
|
||||
fi
|
||||
|
||||
|
||||
@@ -178,8 +178,16 @@ enable_modules "ENABLE_MODULES" "${DEBUG_LEVEL}"
|
||||
disable_modules "DISABLE_MODULES" "${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
###
|
||||
### Run custom user supplied scripts
|
||||
###
|
||||
execute_custom_scripts "/startup.1.d" "${DEBUG_LEVEL}"
|
||||
execute_custom_scripts "/startup.2.d" "${DEBUG_LEVEL}"
|
||||
|
||||
|
||||
###
|
||||
###
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
||||
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
||||
exec "${@}"
|
||||
|
||||
@@ -22,29 +22,22 @@ set -o pipefail
|
||||
###
|
||||
### Variables
|
||||
###
|
||||
if [ -f "/etc/alpine-release" ]; then
|
||||
MAILLOG="/var/log/maillog"
|
||||
elif [ -f "/etc/debian_version" ]; then
|
||||
MAILLOG="/var/log/mail.log"
|
||||
else
|
||||
MAILLOG="/var/log/maillog"
|
||||
fi
|
||||
|
||||
MAILLOG="/var/log/mail.log"
|
||||
MAILPID="/var/spool/postfix/pid/master.pid"
|
||||
|
||||
|
||||
###
|
||||
### Sanity checks
|
||||
###
|
||||
if ! command -v pidof >/dev/null 2>&1; then
|
||||
echo "pidof is required for cleaning up tail command."
|
||||
if ! command -v pgrep >/dev/null 2>&1; then
|
||||
echo "pgrep is required for cleaning up tail command."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Give rsyslogd some time to start up
|
||||
sleep 2
|
||||
|
||||
if ! pidof rsyslogd >/dev/null 2>&1; then
|
||||
if ! pgrep rsyslogd >/dev/null 2>&1; then
|
||||
echo "rsyslogd is not running, but required for mail logging."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -6,4 +6,4 @@ pidfile = /var/run/supervisord.pid
|
||||
childlogdir = /var/log/supervisor
|
||||
|
||||
[include]
|
||||
files = /etc/supervisor/conf.d/*.conf
|
||||
files = /etc/supervisor/conf.d/*.conf /etc/supervisor/custom.d/*.conf
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,35 +45,32 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
coreutils \
|
||||
curl \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
@@ -60,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -68,32 +89,30 @@ RUN set -x \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev\
|
||||
libssl-dev\
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -103,29 +122,86 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# awesomeci
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -134,47 +210,28 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -196,58 +253,330 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -255,7 +584,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -273,7 +605,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -289,26 +621,102 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -323,14 +731,9 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/bashrc-devilbox.d
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
@@ -351,4 +754,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.3-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,35 +45,32 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
coreutils \
|
||||
curl \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
@@ -60,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -68,32 +89,30 @@ RUN set -x \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev\
|
||||
libssl-dev\
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -103,31 +122,98 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
# awesomeci
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -136,64 +222,42 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -215,7 +279,8 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout v2.0.7 \
|
||||
@@ -226,65 +291,353 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -292,7 +645,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -310,7 +666,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -326,32 +682,109 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -366,14 +799,9 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/bashrc-devilbox.d
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
@@ -394,4 +822,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.4-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,35 +45,32 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -q "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -q https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
coreutils \
|
||||
curl \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
@@ -60,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -68,32 +89,30 @@ RUN set -x \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev\
|
||||
libssl-dev\
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -103,31 +122,98 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
# awesomeci
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="17" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -136,90 +222,71 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout v1.3.7 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -241,79 +308,376 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout v2.0.9 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -321,7 +685,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -339,7 +706,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -355,36 +722,114 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -399,14 +844,9 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /etc/bashrc-devilbox.d
|
||||
VOLUME /etc/php-custom.d
|
||||
VOLUME /etc/php-fpm-custom.d
|
||||
VOLUME /etc/php-modules.d
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
@@ -427,4 +867,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
811
Dockerfiles/work/Dockerfile-8.0
Normal file
811
Dockerfiles/work/Dockerfile-8.0
Normal file
@@ -0,0 +1,811 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v3.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
811
Dockerfiles/work/Dockerfile-8.1
Normal file
811
Dockerfiles/work/Dockerfile-8.1
Normal file
@@ -0,0 +1,811 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v3.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
793
Dockerfiles/work/Dockerfile-8.2
Normal file
793
Dockerfiles/work/Dockerfile-8.2
Normal file
@@ -0,0 +1,793 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NODE_VERSION="--lts" \
|
||||
\
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& chmod 0777 /opt/nvm \
|
||||
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||
&& dpkg -i /tmp/symfonycli.deb \
|
||||
&& rm -f /tmp/symfonycli.deb \
|
||||
\
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -27,42 +27,33 @@ PS1="${_clr_usr}${PS1_USR}${_clr_off}@${_clr_ver}php-${PS1_PHP}${_clr_off} in ${
|
||||
|
||||
# Show Intro
|
||||
echo
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo " _ _ _ _ "
|
||||
echo " | | (_) | | "
|
||||
echo " __| | _____ ___| | |__ _____ __"
|
||||
echo " / _\` |/ _ \\ \\ / / | | '_ \\ / _ \\ \\/ /"
|
||||
echo " | (_| | __/\\ V /| | | |_) | (_) > < "
|
||||
echo " \\__,_|\\___| \\_/ |_|_|_.__/ \\___/_/\\_\\"
|
||||
echo " "
|
||||
echo " http://devilbox.org"
|
||||
echo "------------------------------------------------------------------------------------------"
|
||||
echo " _ _ _ _ "
|
||||
echo " | | (_) | | "
|
||||
echo " __| | _____ ___| | |__ _____ __"
|
||||
echo " / _\` |/ _ \\ \\ / / | | '_ \\ / _ \\ \\/ /"
|
||||
echo " | (_| | __/\\ V /| | | |_) | (_) > < "
|
||||
echo " \\__,_|\\___| \\_/ |_|_|_.__/ \\___/_/\\_\\"
|
||||
echo " "
|
||||
echo " http://devilbox.org"
|
||||
echo " https://devilbox.readthedocs.io"
|
||||
echo
|
||||
echo
|
||||
echo " | Available Tools | Project website |"
|
||||
echo " |------------------|------------------------------|"
|
||||
echo " | awesome-ci | gh: cytopia/awesome-ci |"
|
||||
echo " | composer | https://getcomposer.org |"
|
||||
echo " | drupal-console | https://drupalconsole.com |"
|
||||
echo " | drush | http://www.drush.org |"
|
||||
echo " | eslint | https://eslint.org |"
|
||||
echo " | git | https://git-scm.com |"
|
||||
echo " | laravel | gh: laravel/installer |"
|
||||
echo " | linuxbrew | http://linuxbrew.sh |"
|
||||
echo " | mysqldump-secure | https://mysqldump-secure.org |"
|
||||
echo " | node | https://nodejs.org |"
|
||||
echo " | npm | https://www.npmjs.com |"
|
||||
echo " | phalcon-devtools | gh: phalcon/phalcon-devtools |"
|
||||
echo " | symfony installer| gh: symfony/symfony-installer|"
|
||||
echo " | webpack | gh: webpack/webpack |"
|
||||
echo " | wpcli | https://wp-cli.org |"
|
||||
echo
|
||||
echo " Available Tools"
|
||||
echo " https://devilbox.readthedocs.io/en/latest/readings/available-tools.html"
|
||||
echo
|
||||
echo " How to work inside this PHP container"
|
||||
echo " https://devilbox.readthedocs.io/en/latest/intermediate/work-inside-the-php-container.html"
|
||||
echo
|
||||
echo
|
||||
echo " | Available Dirs | Description |"
|
||||
echo " |------------------|------------------------------|"
|
||||
echo " | /shared/httpd | Project base directory |"
|
||||
echo " | /shared/backups | Backup directory |"
|
||||
echo " | /var/mail | Email directory |"
|
||||
echo " | /var/log | Log file directory |"
|
||||
echo
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo " | Available Dirs | Description |"
|
||||
echo " |------------------|------------------------------|"
|
||||
echo " | /shared/httpd | Project base directory |"
|
||||
echo " | /shared/backups | Backup directory |"
|
||||
echo " | /var/mail | Email directory |"
|
||||
echo " | /var/log | Log file directory |"
|
||||
echo
|
||||
echo "------------------------------------------------------------------------------------------"
|
||||
echo
|
||||
|
||||
@@ -55,7 +55,7 @@ set_mds_settings() {
|
||||
else
|
||||
mds_pass_val="$( env_get "${mds_pass_var}" )"
|
||||
log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}"
|
||||
run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
||||
run "perl -pi -e 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
||||
fi
|
||||
|
||||
# MySQL host
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user