mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 11:31:16 +00:00
Compare commits
535 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
042023514d | ||
|
|
b75c0eb4fb | ||
|
|
efcd621c48 | ||
|
|
c0ee7a7e13 | ||
|
|
3770ac24ff | ||
|
|
26c4fb5419 | ||
|
|
393ecc5dac | ||
|
|
8e715503ff | ||
|
|
c14d2d8881 | ||
|
|
06cb912d1e | ||
|
|
9c552b020c | ||
|
|
5613a40247 | ||
|
|
fada51d70e | ||
|
|
d4b1fb1e9e | ||
|
|
a1f7c0ccdd | ||
|
|
66428717b4 | ||
|
|
5cbf875308 | ||
|
|
a2300738b4 | ||
|
|
9b3f06116a | ||
|
|
127c169c85 | ||
|
|
3c28fc52d5 | ||
|
|
f2416e3801 | ||
|
|
f333e37e15 | ||
|
|
7eafbdb887 | ||
|
|
6bbfd78a43 | ||
|
|
737fbbc8ad | ||
|
|
28a4f2ac37 | ||
|
|
204afad4e4 | ||
|
|
a4708249d5 | ||
|
|
d81f406871 | ||
|
|
3cda0b7da3 | ||
|
|
02b3bda76f | ||
|
|
45924e67ba | ||
|
|
e8c5a4270f | ||
|
|
364c28b248 | ||
|
|
a122d6685d | ||
|
|
be2e96d4a2 | ||
|
|
ff61a450ac | ||
|
|
7e775622a5 | ||
|
|
7cc5e25528 | ||
|
|
b6265751ba | ||
|
|
f09e5ad64e | ||
|
|
bfbb967cb8 | ||
|
|
ceadad5512 | ||
|
|
eec7f6c0e2 | ||
|
|
5567bc0a8c | ||
|
|
3934fdc912 | ||
|
|
e34c71f377 | ||
|
|
8f7953248f | ||
|
|
30c3118a22 | ||
|
|
c3628171f1 | ||
|
|
9dea48147d | ||
|
|
36bc9dc099 | ||
|
|
820159d95a | ||
|
|
a7292fdff9 | ||
|
|
2bb64ccff6 | ||
|
|
39db14d294 | ||
|
|
b724ceaca3 | ||
|
|
308f435a7b | ||
|
|
5b41a9b2f7 | ||
|
|
725f52eda8 | ||
|
|
796b04b457 | ||
|
|
92b217fc53 | ||
|
|
d79d834413 | ||
|
|
24c58ce57e | ||
|
|
8f363ace59 | ||
|
|
0fb753511a | ||
|
|
28b7aade7f | ||
|
|
3db1b56b7b | ||
|
|
4cc5e57f24 | ||
|
|
39b32384b6 | ||
|
|
887e7c67c5 | ||
|
|
0126289bf0 | ||
|
|
101e8abb65 | ||
|
|
69ffc63607 | ||
|
|
fb5a242965 | ||
|
|
8d305b3d96 | ||
|
|
9c4490f820 | ||
|
|
6054f92e9e | ||
|
|
f2d1e41377 | ||
|
|
c64e92e94e | ||
|
|
6e15be18a4 | ||
|
|
60555c3556 | ||
|
|
65e3676aa6 | ||
|
|
bc19843825 | ||
|
|
1b047aeee3 | ||
|
|
c55e6d4f53 | ||
|
|
5b6e7e7fc9 | ||
|
|
91943783d8 | ||
|
|
bafc1b2544 | ||
|
|
864f7086c8 | ||
|
|
f71ef64238 | ||
|
|
825bc41054 | ||
|
|
c722d4cc8f | ||
|
|
16f09f8bf6 | ||
|
|
b98b2c31b3 | ||
|
|
ab5264d5be | ||
|
|
7101c8c07c | ||
|
|
f00077a126 | ||
|
|
bf3dffc5b4 | ||
|
|
c76b220e4f | ||
|
|
ab9a3e188f | ||
|
|
76d33f468f | ||
|
|
f6c47da969 | ||
|
|
4fa108269e | ||
|
|
9db2f78914 | ||
|
|
e40b801139 | ||
|
|
54831fd444 | ||
|
|
04e7c24f3a | ||
|
|
e199124ca6 | ||
|
|
f26b491e5f | ||
|
|
f45e004a2f | ||
|
|
111756d4ae | ||
|
|
01126fb861 | ||
|
|
e589728280 | ||
|
|
67a7704c56 | ||
|
|
5ca99aebc8 | ||
|
|
3cf353abae | ||
|
|
566dba9b1e | ||
|
|
63598496fe | ||
|
|
52aa0d4d42 | ||
|
|
40c6d485cc | ||
|
|
d7db5dc72a | ||
|
|
2ad29a8c3e | ||
|
|
df09f78b38 | ||
|
|
0fbc57c154 | ||
|
|
c991ca9eaa | ||
|
|
bd9aac8cba | ||
|
|
873bcce2e7 | ||
|
|
bc0a08ce2f | ||
|
|
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 | ||
|
|
cbd4f58876 |
62
.ansible/CONFIGURATIONS/php.ini.j2
Normal file
62
.ansible/CONFIGURATIONS/php.ini.j2
Normal file
@@ -0,0 +1,62 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for {{ php_version }}-{{ item.key }}
|
||||
; ############################################################
|
||||
|
||||
; 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 = {{ item.cfg[item.key].memory_limit | default(item.cfg[item.alt].memory_limit) }}
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = {{ item.cfg[item.key].max_execution_time | default(item.cfg[item.alt].max_execution_time) }}
|
||||
max_input_time = {{ item.cfg[item.key].max_input_time | default(item.cfg[item.alt].max_input_time) }}
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = {{ item.cfg[item.key].post_max_size | default(item.cfg[item.alt].post_max_size) }}
|
||||
upload_max_filesize = {{ item.cfg[item.key].upload_max_filesize | default(item.cfg[item.alt].upload_max_filesize) }}
|
||||
max_file_uploads = {{ item.cfg[item.key].max_file_uploads | default(item.cfg[item.alt].max_file_uploads) }}
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = {{ item.cfg[item.key].variables_order | default(item.cfg[item.alt].variables_order) }}
|
||||
{# Only available since PHP >=5.4 #}
|
||||
{% if not (php_version == 5.2 or php_version == 5.3 ) %}
|
||||
max_input_vars = {{ item.cfg[item.key].max_input_vars | default(item.cfg[item.alt].max_input_vars) }}
|
||||
{% endif %}
|
||||
max_input_nesting_level = {{ item.cfg[item.key].max_input_nesting_level | default(item.cfg[item.alt].max_input_nesting_level) }}
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = {{ item.cfg[item.key].error_reporting | default(item.cfg[item.alt].error_reporting) }}
|
||||
xmlrpc_errors = {{ item.cfg[item.key].xmlrpc_errors | default(item.cfg[item.alt].xmlrpc_errors) }}
|
||||
report_memleaks = {{ item.cfg[item.key].report_memleaks | default(item.cfg[item.alt].report_memleaks) }}
|
||||
display_errors = {{ item.cfg[item.key].display_errors | default(item.cfg[item.alt].display_errors) }}
|
||||
display_startup_errors = {{ item.cfg[item.key].display_startup_errors | default(item.cfg[item.alt].display_startup_errors) }}
|
||||
{# Only available before PHP 7.2 #}
|
||||
{% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
|
||||
track_errors = {{ item.cfg[item.key].track_errors | default(item.cfg[item.alt].track_errors) }}
|
||||
{% endif %}
|
||||
log_errors = {{ item.cfg[item.key].log_errors | default(item.cfg[item.alt].log_errors) }}
|
||||
html_errors = {{ item.cfg[item.key].html_errors | default(item.cfg[item.alt].html_errors) }}
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
{% if php_version == 5.2 or php_version == 5.3 or php_version == 5.4 or php_version == 5.5 or php_version == 5.6 or php_version == 7.0 or php_version == 7.1 %}
|
||||
xdebug.default_enable = {{ item.cfg[item.key].xdebug2_default_enable | default(item.cfg[item.alt].xdebug2_default_enable) }}
|
||||
xdebug.profiler_enable = {{ item.cfg[item.key].xdebug2_profiler_enable | default(item.cfg[item.alt].xdebug2_profiler_enable) }}
|
||||
xdebug.remote_enable = {{ item.cfg[item.key].xdebug2_remote_enable | default(item.cfg[item.alt].xdebug2_remote_enable) }}
|
||||
xdebug.remote_autostart = {{ item.cfg[item.key].xdebug2_remote_autostart | default(item.cfg[item.alt].xdebug2_remote_autostart) }}
|
||||
{% else %}
|
||||
xdebug.mode = {{ item.cfg[item.key].xdebug3_mode | default(item.cfg[item.alt].xdebug3_mode) }}
|
||||
xdebug.start_with_request = {{ item.cfg[item.key].xdebug3_start_with_request | default(item.cfg[item.alt].xdebug3_start_with_request) }}
|
||||
xdebug.client_port = {{ item.cfg[item.key].xdebug3_client_port | default(item.cfg[item.alt].xdebug3_client_port) }}
|
||||
{% endif %}
|
||||
@@ -1,10 +1,19 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_base }}
|
||||
{% if php_version == 5.2 %}
|
||||
FROM devilbox/php-fpm-5.2
|
||||
{% elif php_version == 5.3 %}
|
||||
FROM devilbox/php-fpm-5.3
|
||||
{% elif php_version == 5.4 %}
|
||||
FROM devilbox/php-fpm-5.4
|
||||
{% elif php_version == 5.5 %}
|
||||
FROM devilbox/php-fpm-5.5
|
||||
{% elif php_version == 8.0 %}
|
||||
FROM devilbox/php-fpm-8.0
|
||||
{% elif php_version == 8.1 %}
|
||||
FROM devilbox/php-fpm-8.1
|
||||
{% elif php_version == 8.2 %}
|
||||
FROM devilbox/php-fpm-8.2
|
||||
{% else %}
|
||||
FROM php:{{ php_version }}-fpm
|
||||
{% endif %}
|
||||
@@ -51,18 +60,11 @@ RUN set -eux \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
{% if php_version in [5.2, 5.3, 5.4, 5.5] %}
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
{% endif %}
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_mods }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
|
||||
@@ -31,14 +32,34 @@ FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -94,9 +115,12 @@ RUN set -eux \
|
||||
{%- if 'configure' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Custom: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
||||
{%- elif 'configure' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Default: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Installation
|
||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
@@ -157,7 +181,7 @@ RUN set -eux \
|
||||
{{- "\n\t" }}# Custom: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
@@ -281,7 +305,7 @@ RUN set -eux \
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -289,9 +313,9 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
@@ -319,20 +343,11 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{# Loop over enabled run-time dependencies -#}
|
||||
{%- set run_deps = [] -%}
|
||||
{%- for ext in extensions_enabled -%}
|
||||
@@ -363,7 +378,18 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
{# Loop over enabled extensions #}
|
||||
{%- set post_commands = {} -%}
|
||||
@@ -430,6 +456,15 @@ RUN set -eux \
|
||||
|
||||
|
||||
{% endif %}
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -1,3 +1,4 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_prod }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
{% if debug %}
|
||||
@@ -76,7 +81,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
536
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
536
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
@@ -0,0 +1,536 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_slim }}
|
||||
{% import './jinja2/macros-work.j2' as fn %}
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt 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
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
{%- for repo in base_apt_repositories_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in base_apt_repositories_available[repo]) or (php_version not in base_apt_repositories_available[repo]['disabled']) -%}
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, repo, base_apt_repositories_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [KEY] -#}
|
||||
{%- if fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [DEB] -#}
|
||||
{%- if fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& echo "{{ fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{{ "\n\t" }}&& true
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- for ext in base_software_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, ext, base_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if build_deps -%}
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
###
|
||||
### Add common tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||
mariadb-client \
|
||||
{% else %}
|
||||
mysql-client \
|
||||
{% endif %}
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
{% set tools_apt = [] -%}
|
||||
{%- for tool in base_software_enabled -%}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if tools_apt -%}
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMMAND] -#}
|
||||
{%- if fn.get_type(php_version, tool, base_software_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Prepare required shared libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit libyaml-cpp libstemmer libsnappy libpcap libbsd liblzf" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
###
|
||||
### Fix expected PostgreSQL directories
|
||||
###
|
||||
### This might not exist on arm64 as software was not available,
|
||||
### but they are still needed to be present, so we can copy them.
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/usr/lib/postgresql" ]; then \
|
||||
mkdir "/usr/lib/postgresql"; \
|
||||
fi \
|
||||
&& if [ ! -d "/usr/share/postgresql-common" ]; then \
|
||||
mkdir "/usr/share/postgresql-common"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Prepare MongoDB binaries for copying.
|
||||
###
|
||||
### They might not be available on all architectures (e.g.: arm64).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& mkdir /tmp/mongo \
|
||||
&& if ls -1 "/usr/bin/" | grep "^mongo" >/dev/null; then \
|
||||
cp -r /usr/bin/mongo* /tmp/mongo/; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Strip debugging information to smallen filesize
|
||||
###
|
||||
RUN set -eux \
|
||||
&& STRIP_USR_BINS="blackfire mongo mysql redis sqlite" \
|
||||
&& STRIP_DIRS="/usr/lib/postgresql/ /usr/share/postgresql-common/ /tmp" \
|
||||
\
|
||||
&& for bin in ${STRIP_USR_BINS}; do \
|
||||
( \
|
||||
find /usr/bin/ -name "${bin}"* -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& for dir in ${STRIP_DIRS}; do \
|
||||
( \
|
||||
find ${dir} -type f -print0 \
|
||||
| xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) sh -c \
|
||||
'if [ -f "${1}" ]; then echo "Strip: ${1}"; strip --strip-all -p "${1}" 2>/dev/null || true; fi' -- \
|
||||
) \
|
||||
done \
|
||||
\
|
||||
&& strip --strip-all -p /usr/local/bin/mhsendmail 2>/dev/null || true \
|
||||
&& strip --strip-all -p /usr/local/bin/mysqldump-secure 2>/dev/null || true
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
{% set tools_apt = [] -%}
|
||||
{%- for tool in base_software_enabled -%}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if tools_apt -%}
|
||||
###
|
||||
### Install tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### Copy system files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Copy Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy MongoDB client (if exists)
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/mongo/ /usr/bin/
|
||||
|
||||
###
|
||||
### Copy MysQL Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
|
||||
###
|
||||
### Create PostgreSQL symlinks
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ -f "/usr/share/postgresql-common/pg_wrapper" ]; then \
|
||||
ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Copy Redis Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy SQLite Client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### ADD PHP configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-{{ php_version }}.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
###
|
||||
### ADD Devilbox configuration files
|
||||
###
|
||||
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
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure /usr/local(s)?bin is in PATH"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox main bash config"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Source Devilbox custom configs"; \
|
||||
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}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
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 \
|
||||
&& if find /usr/local/lib/php/extensions/ -name xhprof.so | grep xhprof; then \
|
||||
echo "extension=xhprof.so" > /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
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 '^{{ php_version }}' \
|
||||
&& /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
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
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"="{{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-slim"
|
||||
|
||||
###
|
||||
### 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"]
|
||||
582
.ansible/DOCKERFILES/Dockerfile-work.j2
Normal file
582
.ansible/DOCKERFILES/Dockerfile-work.j2
Normal file
@@ -0,0 +1,582 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_work }}
|
||||
{% import './jinja2/macros-work.j2' as fn %}
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/7: Devilbox work image (HELP BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to install custom tools
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-slim as devilbox-work-help-builder
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if build_deps -%}
|
||||
###
|
||||
### Install build_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for build_dep in build_deps | unique | sort %}
|
||||
{{ build_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if run_deps -%}
|
||||
|
||||
###
|
||||
### Install run_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for run_dep in run_deps | unique | sort %}
|
||||
{{ run_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{%- endif %}
|
||||
|
||||
###
|
||||
### Devilbox required helper tools from group_vars (work-help.yml)
|
||||
###
|
||||
{% for tool in help_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in help_software_available[tool]) or (php_version not in help_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, help_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMMAND] -#}
|
||||
{%- if fn.get_type(php_version, tool, help_software_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, help_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, help_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/7: Devilbox work image (HELP)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-slim as devilbox-work-help
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- for ext in help_software_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, ext, help_software_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endfor -%}
|
||||
{%- if run_deps -%}
|
||||
###
|
||||
### Install run_dep
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{% for run_dep in run_deps | unique | sort %}
|
||||
{{ run_dep }} \
|
||||
{% endfor %}
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy nvm
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /opt/nvm /opt/nvm
|
||||
|
||||
###
|
||||
### Copy binaries (Composer & Pip binaries)
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /usr/local/bin /usr/local/bin
|
||||
|
||||
###
|
||||
### Python packages
|
||||
###
|
||||
COPY --from=devilbox-work-help-builder /usr/local/lib /usr/local/lib
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash (composer, node yarn)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
#echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure yarn, composer and node are in PATH"; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="{{ nvm_home }}/versions/node/$(node --version)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo; \
|
||||
echo "# [Devilbox] Ensure to load nvm"; \
|
||||
echo 'export NVM_DIR="{{ nvm_home }}"'; \
|
||||
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'; \
|
||||
#echo; \
|
||||
#echo ". /etc/bash-devilbox"; \
|
||||
#echo; \
|
||||
#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}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/7: Devilbox work image (HELP TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-help-test
|
||||
|
||||
###
|
||||
### Devilbox required helper tools from group_vars (work-help.yml)
|
||||
###
|
||||
{% for tool in help_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in help_software_available[tool]) or (php_version not in help_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in help_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ help_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
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 \
|
||||
&& if find /usr/local/lib/php/extensions/ -name xhprof.so | grep xhprof; then \
|
||||
echo "extension=xhprof.so" > /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
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 '^{{ php_version }}' \
|
||||
&& /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
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/7: Devilbox work image (TOOLS BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### This stage can be easily modified by adding tools into the ./php_tools/ directory.
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-tools-builder
|
||||
|
||||
{% set build_deps = [] -%}
|
||||
{%- set run_deps = [] -%}
|
||||
{%- set tools_apt = [] -%}
|
||||
{%- for tool in tools_enabled -%}
|
||||
{%- for dep in fn.get_build_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- build_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, tools_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, tools_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if build_deps or run_deps or tools_apt -%}
|
||||
###
|
||||
### Install build_dep, run_dep or tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if build_deps -%}
|
||||
{{- "\t\t# ---------- build_deps ----------\n" -}}
|
||||
{%- for apt in build_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if run_deps -%}
|
||||
{{- "\t\t# ---------- run_deps ----------\n" -}}
|
||||
{%- for apt in run_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Install defined php_tools
|
||||
###
|
||||
{% for tool in tools_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- ({{ fn.get_type(php_version, tool, tools_available) }}) {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, tools_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CUSTOM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [NPM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'npm' -%}
|
||||
{%- set npm_package = fn.tool_npm_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set npm_version = fn.tool_npm_get_version(php_version, tool, tools_available) -%}
|
||||
{%- set npm_binary = fn.tool_npm_get_binary(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install --location=global {{ npm_package }}{{ npm_version }}' devilbox \
|
||||
{%- if npm_binary | length -%}
|
||||
{{ "\n\t" }}&& ln -s {{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/{{ npm_binary }} /usr/local/bin/ \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMPOSER] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'composer' -%}
|
||||
{%- set comp_composer = fn.tool_composer_get_composer(php_version, tool, tools_available) -%}
|
||||
{%- set comp_package = fn.tool_composer_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set comp_version = fn.tool_composer_get_version(php_version, tool, tools_available) -%}
|
||||
{%- set comp_flags = fn.tool_composer_get_flags(php_version, tool, tools_available) -%}
|
||||
{%- set comp_binary = fn.tool_composer_get_binary(php_version, tool, tools_available) -%}
|
||||
{#- FIXME: use su -c ' devilbox -#}
|
||||
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ comp_composer }} global require --no-interaction --no-cache {{ comp_flags }} {{ comp_package }}{{ comp_version }} \
|
||||
{%- if comp_binary | length -%}
|
||||
{{ "\n\t" }}&& ln -s {{ composer_home }}/vendor/{{ comp_package }}/{{ comp_binary }} /usr/local/bin/ \
|
||||
{%- endif -%}
|
||||
{{ "\n\t" }}&& rm -rf {{ composer_home }}/cache/* \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [RUBYGEM] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'rubygem' -%}
|
||||
{%- set rubygem_package = fn.tool_rubygem_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set rubygem_version = fn.tool_rubygem_get_version(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& gem install {{ rubygem_package }}{{ rubygem_version }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [PIP] -#}
|
||||
{%- if fn.get_type(php_version, tool, tools_available) == 'pip' -%}
|
||||
{%- set pip_package = fn.tool_pip_get_package(php_version, tool, tools_available) -%}
|
||||
{%- set pip_version = fn.tool_pip_get_version(php_version, tool, tools_available) -%}
|
||||
{{ "\n\t" }}&& pip install --no-cache-dir --no-compile --force-reinstall {{ pip_package }}{{ pip_version }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, tools_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, tools_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in tools_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ tools_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Post fixes
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if [ ! -d "/var/lib/gems" ]; then \
|
||||
mkdir "/var/lib/gems"; \
|
||||
fi
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 5/7: Devilbox work image (TOOLS)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### This stage can be easily modified by adding tools into the ./php_tools/ directory.
|
||||
###
|
||||
FROM devilbox-work-help as devilbox-work-tools
|
||||
|
||||
{% set run_deps = [] -%}
|
||||
{%- set tools_apt = [] -%}
|
||||
{%- for tool in tools_enabled -%}
|
||||
{%- for dep in fn.get_run_dep(php_version, tool, tools_available) | from_json -%}
|
||||
{%- if dep -%}
|
||||
{{- run_deps.append(dep) -}}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if ('disabled' not in tools_available[tool]) or (php_version not in tools_available[tool]['disabled']) -%}
|
||||
{%- if fn.tool_apt_get_package(php_version, tool, tools_available) -%}
|
||||
{{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, tools_available)) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
{%- if build_deps or run_deps or tools_apt -%}
|
||||
###
|
||||
### Install run_dep or tools type: apt
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
{{- "\n" -}}
|
||||
{%- if run_deps -%}
|
||||
{{- "\t\t# ---------- run_deps ----------\n" -}}
|
||||
{%- for apt in run_deps | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- if tools_apt -%}
|
||||
{{- "\t\t# ---------- type: apt ----------\n" -}}
|
||||
{%- for apt in tools_apt | unique | sort -%}
|
||||
{{- "\t\t" + apt + " \\" + "\n" -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}}
|
||||
{% endif %}
|
||||
|
||||
###
|
||||
### Copy Custom (binaries in /usr/local/bin)
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/bin /usr/local/bin
|
||||
|
||||
###
|
||||
### Copy NPM
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /opt/nvm /opt/nvm
|
||||
|
||||
###
|
||||
### Copy Composer
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/src /usr/local/src
|
||||
|
||||
###
|
||||
### Copy Pip
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /usr/local/lib /usr/local/lib
|
||||
|
||||
###
|
||||
### Copy RubyGems
|
||||
###
|
||||
COPY --from=devilbox-work-tools-builder /var/lib/gems /var/lib/gems
|
||||
|
||||
|
||||
# FIXME: / TODO: Add post: stage into here as well
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 6/7: Devilbox work image (TOOLS TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-work-tools as devilbox-work-tools-test
|
||||
|
||||
{% for tool in tools_enabled -%}
|
||||
{%- if fn.is_not_disabled(php_version, tool, tools_available) -%}
|
||||
{{- "\n" }}# -------------------- ({{ fn.get_type(php_version, tool, tools_available) }}) {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{%- if 'check' in tools_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ tools_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
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 \
|
||||
&& if find /usr/local/lib/php/extensions/ -name xhprof.so | grep xhprof; then \
|
||||
echo "extension=xhprof.so" > /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
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 '^{{ php_version }}' \
|
||||
&& /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
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 7/7: Devilbox sliwork image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: work)
|
||||
###
|
||||
FROM devilbox-work-tools as work
|
||||
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"="{{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-work"
|
||||
|
||||
###
|
||||
### 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"]
|
||||
16
.ansible/ansible.cfg
Normal file
16
.ansible/ansible.cfg
Normal file
@@ -0,0 +1,16 @@
|
||||
[defaults]
|
||||
roles_path = ./roles
|
||||
inventory = inventory.ini
|
||||
strategy_plugins = /usr/lib/python3.10/site-packages/ansible_mitogen/plugins/strategy
|
||||
strategy = mitogen_linear
|
||||
|
||||
# Show timing information
|
||||
callbacks_enabled = timer, profile_tasks, profile_roles
|
||||
|
||||
# Speed improvements
|
||||
host_key_checking = False
|
||||
internal_poll_interval = 0.001
|
||||
|
||||
[ssh_connection]
|
||||
pipelining = True
|
||||
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
|
||||
@@ -3,10 +3,11 @@
|
||||
# Ansible specific definitions
|
||||
###################################################################################################
|
||||
|
||||
edit_comment_base: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||
edit_comment_mods: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||
edit_comment_prod: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||
edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
edit_comment_base: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||
edit_comment_mods: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||
edit_comment_prod: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||
edit_comment_slim: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead."
|
||||
edit_comment_work: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
@@ -33,45 +34,51 @@ php_all_versions:
|
||||
- 7.3
|
||||
- 7.4
|
||||
- 8.0
|
||||
- 8.1
|
||||
- 8.2
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Docker file paths for each version for base, mods, prod & work
|
||||
# Docker file paths for each version for base, mods, prod, slim & work
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_dockerfiles:
|
||||
- src: DOCKERFILES/Dockerfile-base.j2
|
||||
dst: "../../Dockerfiles/base/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/base/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-mods.j2
|
||||
dst: "../../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-prod.j2
|
||||
dst: "../../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-slim.j2
|
||||
dst: "../Dockerfiles/slim/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-work.j2
|
||||
dst: "../../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
dst: "../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Assign php.ini & php-fpm.conf to PHP versions
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_configurations:
|
||||
|
||||
# php.ini
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
dst: "../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
cfg: "{{ php_settings_ini }}"
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
dst: "../Dockerfiles/slim/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
cfg: "{{ php_settings_ini }}"
|
||||
key: work
|
||||
alt: base # Alternative key to use when definition is not set in 'work'
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
|
||||
# php-fpm.conf
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
dst: "../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
dst: "../Dockerfiles/slim/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: work
|
||||
alt: base
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
@@ -17,55 +17,64 @@ php_settings_ini:
|
||||
# ---- Sane default ----
|
||||
base:
|
||||
# Memory
|
||||
memory_limit: 512M
|
||||
memory_limit: 512M
|
||||
# Timeouts
|
||||
max_execution_time: "{{ php_timeout }}"
|
||||
max_input_time: "{{ php_timeout }}"
|
||||
max_execution_time: "{{ php_timeout }}"
|
||||
max_input_time: "{{ php_timeout }}"
|
||||
# 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
|
||||
# Variables
|
||||
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
|
||||
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'
|
||||
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'
|
||||
# Xdebug2 settings
|
||||
xdebug2_default_enable: 'Off'
|
||||
xdebug2_profiler_enable: 'Off'
|
||||
xdebug2_remote_enable: 'Off'
|
||||
xdebug2_remote_autostart: 'Off'
|
||||
# Xdebug3 settings
|
||||
xdebug3_mode: 'Off'
|
||||
xdebug3_start_with_request: 'default'
|
||||
xdebug3_client_port: '9000'
|
||||
|
||||
# ---- Inherits from base ----
|
||||
mods:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
work:
|
||||
slim:
|
||||
# Error reporting
|
||||
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||
xmlrpc_errors: 'Off'
|
||||
report_memleaks: 'On'
|
||||
display_errors: 'On'
|
||||
display_startup_errors: 'On'
|
||||
track_errors: 'On'
|
||||
log_errors: 'On'
|
||||
html_errors: 'On'
|
||||
# Xdebug settings
|
||||
xdebug_default_enable: 'Off'
|
||||
xdebug_profiler_enable: 'Off'
|
||||
xdebug_remote_enable: 'Off'
|
||||
xdebug_remote_autostart: 'Off'
|
||||
|
||||
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||
xmlrpc_errors: 'Off'
|
||||
report_memleaks: 'On'
|
||||
display_errors: 'On'
|
||||
display_startup_errors: 'On'
|
||||
track_errors: 'On'
|
||||
log_errors: 'On'
|
||||
html_errors: 'On'
|
||||
# Xdebug2 settings
|
||||
xdebug2_default_enable: 'Off'
|
||||
xdebug2_profiler_enable: 'Off'
|
||||
xdebug2_remote_enable: 'Off'
|
||||
xdebug2_remote_autostart: 'Off'
|
||||
# Xdebug3 settings
|
||||
xdebug3_mode: 'Off'
|
||||
xdebug3_start_with_request: 'default'
|
||||
xdebug3_client_port: '9000'
|
||||
# ---- Inherits from slim ----
|
||||
work:
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# php-fpm.conf
|
||||
@@ -102,5 +111,7 @@ php_settings_fpm:
|
||||
mods:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
# ---- Inherits from base ----
|
||||
slim:
|
||||
# ---- Inherits from base ----
|
||||
work:
|
||||
1606
.ansible/group_vars/all/mods.yml
Normal file
1606
.ansible/group_vars/all/mods.yml
Normal file
File diff suppressed because it is too large
Load Diff
573
.ansible/group_vars/all/slim.yml
Normal file
573
.ansible/group_vars/all/slim.yml
Normal file
@@ -0,0 +1,573 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: slim
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-slim images
|
||||
#
|
||||
|
||||
|
||||
###
|
||||
### Define operating system versions
|
||||
###
|
||||
os_release:
|
||||
# Bullseye (Ubuntu: focal, groovy, hirsute, impish)
|
||||
all:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.2:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.1:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.0:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.4:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.3:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
# Buster (Ubuntu: bionic, cosmic, disco, eoan)
|
||||
7.2:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
7.1:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
# Strech (Ubuntu: xenial, yakkety, zesty, artful)
|
||||
7.0:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
5.6:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
# Jessie (Ubuntu: trusty, utopic, vivid, wily)
|
||||
5.5:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.4:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.3:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.2:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repositories to enable (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_apt_repositories_enabled:
|
||||
- backports
|
||||
- blackfire
|
||||
# - mongo # Note: This is done separately in tools (to check ARCH as well)
|
||||
# - pgsql # Note: This is done separately in tools (to check ARCH as well)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_software_enabled:
|
||||
- dig # required by Devilbox Intranet
|
||||
- netcat # required by Devilbox Intranet
|
||||
- ping # required by Devilbox Intranet
|
||||
- sudo # required by /etc/sudoers.d/devilbox config file
|
||||
- blackfire
|
||||
- mhsendmail
|
||||
- mongo_client
|
||||
- mysqldumpsecure
|
||||
- pgsql_client
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repository definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# deb: Deb line to add to sources list
|
||||
# key: [optional] Key id to add for repository
|
||||
# pre: [optional] Run custom command to add gpg key for repository
|
||||
#
|
||||
base_apt_repositories_available:
|
||||
|
||||
###
|
||||
### Backports
|
||||
###
|
||||
backports:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release['all'].debian }}-backports main
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.2].debian }}-backports main
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.1].debian }}-backports main
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.0].debian }}-backports main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[5.6].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.5].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.4].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.3].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.2].debian }}-backports main
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://packages.blackfire.io/debian any main
|
||||
pre: curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
|
||||
###
|
||||
### MongoDB (currently obsolete)
|
||||
###
|
||||
mongo:
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0] # TODO: Why were those disabled?
|
||||
# [Bullseye] Ubuntu repository required for arm64 support instead
|
||||
all:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release['all'].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.2:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.2].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.1:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.1].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
|
||||
###
|
||||
### PostgrSQL (currently obsolete)
|
||||
###
|
||||
pgsql:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release['all'].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.2].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.1].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[7.0].debian }}-pgdg main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.6].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.5].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.4].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.3].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.2].debian }}-pgdg main
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Essential Software definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
base_software_available:
|
||||
|
||||
###
|
||||
### dig
|
||||
###
|
||||
dig:
|
||||
check: dig -v 2>&1 | grep -E '[0-9]\.[0-9]'
|
||||
all:
|
||||
type: apt
|
||||
package: dnsutils
|
||||
|
||||
###
|
||||
### netcat
|
||||
###
|
||||
netcat:
|
||||
check: nc -h 2>&1 | grep netcat
|
||||
all:
|
||||
type: apt
|
||||
package: netcat-openbsd
|
||||
|
||||
###
|
||||
### ping
|
||||
###
|
||||
ping:
|
||||
check: ping -V | grep ^ping
|
||||
all:
|
||||
type: apt
|
||||
package: iputils-ping
|
||||
|
||||
###
|
||||
### sudo
|
||||
###
|
||||
sudo:
|
||||
check: sudo --version | grep -E 'version [0-9]+\.[0-9]+'
|
||||
all:
|
||||
type: apt
|
||||
package: sudo
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
check: |
|
||||
blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### mhsendmail
|
||||
###
|
||||
mhsendmail:
|
||||
check: mhsendmail -h 2>&1 | grep 'Usage'
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& if [ "${DEB_HOST_ARCH}" = "amd64" ] || [ "${DEB_HOST_ARCH}" = "arm64" ]; then \
|
||||
MHSENDMAIL_URL="https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_${DEB_HOST_ARCH}" \
|
||||
&& curl -sS -L --fail "${MHSENDMAIL_URL}" > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for this platform."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### MongoDB Command line client
|
||||
###
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
mongo_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | 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 \
|
||||
\
|
||||
&& if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongo --version; \
|
||||
fi \
|
||||
else \
|
||||
mongo --version; \
|
||||
fi \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
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 {{ os_release[php_version].ubuntu }}/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
build_dep: [libsnappy-dev] # Required to copy libsnappy.so to next stage
|
||||
7.0:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### mysqldump-secure
|
||||
###
|
||||
mysqldumpsecure:
|
||||
check: mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
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 \
|
||||
|
||||
###
|
||||
### PostgrSQL Command line client
|
||||
###
|
||||
# 8.2: (amd64, arm64)
|
||||
# 8.1: (amd64, arm64)
|
||||
# 8.0: (amd64, arm64)
|
||||
# 7.4: (amd64, arm64)
|
||||
# 7.3: (amd64, arm64)
|
||||
# 7.2: (amd64, arm64)
|
||||
# 7.1: (amd64, arm64)
|
||||
# 7.0: (amd64)
|
||||
# 5.6: (amd64)
|
||||
# 5.5: (amd64)
|
||||
# 5.4: (amd64)
|
||||
# 5.3: (amd64)
|
||||
# 5.2: (amd64)
|
||||
pgsql_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | 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 \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
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/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
239
.ansible/group_vars/all/work-help.yml
Normal file
239
.ansible/group_vars/all/work-help.yml
Normal file
@@ -0,0 +1,239 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: work (docker stage: help)
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-work images
|
||||
#
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Global variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
composer_home: /usr/local/src/composer
|
||||
nvm_home: /opt/nvm
|
||||
node_version: --lts
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
help_software_enabled:
|
||||
- composer
|
||||
- nvm
|
||||
- pip
|
||||
|
||||
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
## Software definition
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
#
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
help_software_available:
|
||||
|
||||
###
|
||||
### Composer
|
||||
###
|
||||
composer:
|
||||
disabled: [5.2]
|
||||
check: composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
command: |
|
||||
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 \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
run_dep: [unzip] # Required for composer to unzip packages
|
||||
7.1:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
|
||||
###
|
||||
### nvm
|
||||
###
|
||||
nvm:
|
||||
check: |
|
||||
su -c '. {{ nvm_home }}/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="{{ node_version }}" \
|
||||
command: |
|
||||
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 {{ nvm_home }} \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="{{ nvm_home }}" bash \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "{{ nvm_home }}" \
|
||||
# Install latest and LTS version and yarn
|
||||
post: |
|
||||
su -c ". {{ nvm_home }}/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/corepack" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/node" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npm" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npx" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/yarn" /usr/local/bin/ \
|
||||
\
|
||||
&& chmod 0777 {{ nvm_home }} \
|
||||
&& find {{ nvm_home }} -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find {{ nvm_home }} -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
&& rm -rf {{ nvm_home }}/.cache \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/share \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/include \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
|
||||
###
|
||||
### Python pip
|
||||
###
|
||||
pip:
|
||||
check: pip --version
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
# Cleanup
|
||||
post: |
|
||||
/bin/ls -1 /usr/local/lib/ | grep ^python | while read -r version; do \
|
||||
cd "/usr/local/lib/${version}/" \
|
||||
&& find . -name '*.pyc' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '*.exe' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '__pycache__' -print0 | xargs -0 -n1 rm -rf \
|
||||
\
|
||||
&& if [ -d "dist-packages" ]; then \
|
||||
cd "dist-packages" \
|
||||
&& pwd \
|
||||
&& if /bin/ls -1 | grep -v '^pip'; then \
|
||||
/bin/ls -1 | grep -v '^pip' | xargs -n1 rm -rf; \
|
||||
fi \
|
||||
fi \
|
||||
done \
|
||||
run_dep: [python3-distutils]
|
||||
build_dep: [libpython3-dev]
|
||||
7.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.1:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.0:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.6:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.5:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.4:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.3:
|
||||
type: custom
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
5.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
739
.ansible/group_vars/all/work.yml
Normal file
739
.ansible/group_vars/all/work.yml
Normal file
@@ -0,0 +1,739 @@
|
||||
---
|
||||
|
||||
# DO NOT ALTER THIS FILE - IT IS AUTOGENERATED.
|
||||
|
||||
# The following specifies the order in which tools are being installed.
|
||||
tools_enabled:
|
||||
- angular-cli
|
||||
- asgardcms
|
||||
- eslint
|
||||
- git
|
||||
- jsonlint
|
||||
- mdl
|
||||
- awesome-ci
|
||||
- codeception
|
||||
- deployer
|
||||
- git-flow
|
||||
- grunt-cli
|
||||
- gulp
|
||||
- jq
|
||||
- laravel-installer
|
||||
- laravel-lumen
|
||||
- linkcheck
|
||||
- mdlint
|
||||
- mupdf-tools
|
||||
- net-tools
|
||||
- phalcon-devtools
|
||||
- php-cs-fixer
|
||||
- phpcbf
|
||||
- phpcs
|
||||
- phpmd
|
||||
- phpunit
|
||||
- pm2
|
||||
- pwncat
|
||||
- ssh
|
||||
- rsync
|
||||
- sass
|
||||
- shellcheck
|
||||
- stylelint
|
||||
- svn
|
||||
- symfony-cli
|
||||
- taskfile
|
||||
- tig
|
||||
- vim
|
||||
- vue-cli
|
||||
- webpack-cli
|
||||
- wkhtmltopdf
|
||||
- wp-cli
|
||||
- wscat
|
||||
- yamllint
|
||||
- yq
|
||||
- zsh
|
||||
|
||||
|
||||
# The following specifies how tools are being installed.
|
||||
tools_available:
|
||||
angular-cli:
|
||||
disabled: []
|
||||
check: ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "@angular/cli"
|
||||
binary: ng
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
asgardcms:
|
||||
disabled: [5.2, 5.3, 5.4]
|
||||
check: asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: asgardcms/asgardcms-installer
|
||||
# https://github.com/AsgardCms/asgardcms-installer/issues/1
|
||||
version: dev-master
|
||||
flags:
|
||||
binary: asgardcms
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
eslint:
|
||||
disabled: []
|
||||
check: eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "eslint"
|
||||
binary: eslint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
git:
|
||||
disabled: []
|
||||
check: git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: git
|
||||
jsonlint:
|
||||
disabled: []
|
||||
check: jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: jsonlint
|
||||
binary: jsonlint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
mdl:
|
||||
disabled: []
|
||||
check: mdl --version | grep -E '[.0-9]+' || (mdl --version; false)
|
||||
all:
|
||||
type: rubygem
|
||||
package: mdl
|
||||
# version:
|
||||
build_dep: [ruby-dev]
|
||||
run_dep: [ruby]
|
||||
# pre:
|
||||
# post:
|
||||
7.2:
|
||||
type: rubygem
|
||||
version: 0.11.0
|
||||
pre: |
|
||||
gem install chef-utils -v 16.6.14 \
|
||||
7.1:
|
||||
type: rubygem
|
||||
version: 0.11.0
|
||||
pre: |
|
||||
gem install chef-utils -v 16.6.14 \
|
||||
7.0:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.6:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.5:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.4:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.3:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
5.2:
|
||||
type: rubygem
|
||||
version: 0.5.0
|
||||
pre: |
|
||||
gem install mixlib-config -v 2.2.4 \
|
||||
awesome-ci:
|
||||
disabled: []
|
||||
check: regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \
|
||||
&& cd /tmp/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /tmp/awesome-ci \
|
||||
# moreutils: isutf8
|
||||
run_dep: [dos2unix, file, moreutils]
|
||||
codeception:
|
||||
disabled: [5.2, 5.3]
|
||||
check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: codeception/codeception
|
||||
# version:
|
||||
flags:
|
||||
binary: codecept
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
deployer:
|
||||
disabled: [5.2, 5.3]
|
||||
check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep
|
||||
post: chmod +x /usr/local/bin/dep
|
||||
7.1:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
7.0:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.6:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.5:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep
|
||||
5.4:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep
|
||||
git-flow:
|
||||
disabled: []
|
||||
check: git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
grunt-cli:
|
||||
disabled: []
|
||||
check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "grunt-cli"
|
||||
binary: grunt
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
gulp:
|
||||
disabled: []
|
||||
check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: gulp
|
||||
binary: gulp
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
jq:
|
||||
disabled: []
|
||||
check: jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: jq
|
||||
laravel-installer:
|
||||
disabled: [5.2, 5.3]
|
||||
check: laravel --version | grep ^Laravel | grep -E '[0-9]\.[0-9]+' || (laravel --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: laravel/installer
|
||||
# version:
|
||||
flags:
|
||||
binary: bin/laravel
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
7.2:
|
||||
type: composer
|
||||
version: 4.0.0
|
||||
7.1:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.3.0
|
||||
7.0:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.6:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.5:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 2.2.0
|
||||
5.4:
|
||||
type: composer
|
||||
binary: laravel
|
||||
version: 1.3.7
|
||||
laravel-lumen:
|
||||
disabled: [5.2, 5.3, 5.4]
|
||||
check: lumen --version 2>/dev/null | grep ^Lumen | grep -E '[0-9]\.[0-9]+' || (lumen --version; false)
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: laravel/lumen-installer
|
||||
# version:
|
||||
flags:
|
||||
binary: lumen
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
linkcheck:
|
||||
disabled: []
|
||||
check: linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck
|
||||
post: chmod +x /usr/local/bin/linkcheck
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
mdlint:
|
||||
disabled: []
|
||||
check: mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: mdlint
|
||||
binary: mdlint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
mupdf-tools:
|
||||
disabled: []
|
||||
check: |
|
||||
PHP_VERSION="$(php -v | grep ^PHP | awk '{print $2}' | grep -Eo '[0-9]\.[0-9]')" \
|
||||
&& if echo "${PHP_VERSION}" | grep -E '5\.2|5\.3|5\.4|5\.5'; then \
|
||||
mutool 2>&1 | grep ^usage; \
|
||||
else \
|
||||
echo test > test.txt \
|
||||
&& mutool create -o test.pdf test.txt \
|
||||
&& file test.pdf | grep 'PDF document' \
|
||||
&& rm test.txt \
|
||||
&& rm test.pdf; \
|
||||
fi \
|
||||
all:
|
||||
type: apt
|
||||
package: mupdf-tools
|
||||
net-tools:
|
||||
disabled: []
|
||||
check: netstat --version | grep net-tools || (netstat --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: net-tools
|
||||
phalcon-devtools:
|
||||
disabled: [5.2, 5.3, 5.4, 8.2]
|
||||
check: |
|
||||
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 \
|
||||
\
|
||||
\
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' || (phalcon commands; false) \
|
||||
\
|
||||
\
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini ]; then \
|
||||
rm /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini ]; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
all:
|
||||
type: composer
|
||||
composer: 2
|
||||
package: phalcon/devtools
|
||||
binary: phalcon
|
||||
# Enable phalcon.so (and its requirement psr prior installing)
|
||||
pre: |
|
||||
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 \
|
||||
# Disable phalcon.so (and its requirement psr after installing)
|
||||
post: |
|
||||
if [ -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini ]; then \
|
||||
rm /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini ]; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi \
|
||||
7.1:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
7.0:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
5.6:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
5.5:
|
||||
type: composer
|
||||
version: 3.4.11
|
||||
php-cs-fixer:
|
||||
disabled: [5.2, 8.2]
|
||||
check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar"
|
||||
post: chmod +x /usr/local/bin/php-cs-fixer
|
||||
7.3:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.2:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
5.6:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar"
|
||||
5.5:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar"
|
||||
phpcbf:
|
||||
disabled: []
|
||||
check: phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf
|
||||
pre: PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar"
|
||||
post: chmod +x /usr/local/bin/phpcbf
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar"
|
||||
5.2:
|
||||
type: custom
|
||||
pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar"
|
||||
phpcs:
|
||||
disabled: []
|
||||
check: phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs
|
||||
pre: PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar"
|
||||
post: chmod +x /usr/local/bin/phpcs
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar"
|
||||
5.2:
|
||||
type: custom
|
||||
pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar"
|
||||
phpmd:
|
||||
disabled: [5.2]
|
||||
check: phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd
|
||||
post: chmod +x /usr/local/bin/phpmd
|
||||
phpunit:
|
||||
disabled: [5.2]
|
||||
check: phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
if [ -n "${PHP_UNIT_VERSION}" ]; then \
|
||||
PHP_UNIT_URL="https://phar.phpunit.de/phpunit-${PHP_UNIT_VERSION}.phar"; \
|
||||
else \
|
||||
PHP_UNIT_URL="https://phar.phpunit.de/phpunit.phar"; \
|
||||
fi \
|
||||
&& curl -sS -L --fail "${PHP_UNIT_URL}" -L -o /usr/local/bin/phpunit \
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre: PHP_UNIT_VERSION=""
|
||||
post: chmod +x /usr/local/bin/phpunit
|
||||
7.2:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="8"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="7"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="6"
|
||||
5.6:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="5"
|
||||
5.5:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: PHP_UNIT_VERSION="4"
|
||||
pm2:
|
||||
disabled: []
|
||||
check: pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: pm2
|
||||
binary: pm2
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
pwncat:
|
||||
disabled: []
|
||||
check: pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post: |
|
||||
ln -s pwncat /usr/local/bin/netcat \
|
||||
ssh:
|
||||
disabled: []
|
||||
check: ssh -V 2>&1 | grep ^OpenSSH || (ssh -V; false)
|
||||
all:
|
||||
type: apt
|
||||
package: openssh-client
|
||||
rsync:
|
||||
disabled: []
|
||||
check: rsync --version | grep version | grep -E '[0-9]\.[0-9]+' || (rsync --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: rsync
|
||||
sass:
|
||||
disabled: []
|
||||
check: sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: sass
|
||||
binary: sass
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
shellcheck:
|
||||
disabled: []
|
||||
check: shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: shellcheck
|
||||
stylelint:
|
||||
disabled: []
|
||||
check: stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: stylelint
|
||||
binary: stylelint
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
svn:
|
||||
disabled: []
|
||||
check: svn --version | grep version | grep -E '[0-9]+\.[0-9]+' || (svn --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: subversion
|
||||
symfony-cli:
|
||||
disabled: []
|
||||
check: symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
taskfile:
|
||||
disabled: []
|
||||
check: task --version | grep -E '[0-9][.0-9]+' || (task --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: sh -c "$(curl -sS -K --fail -k https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin/
|
||||
tig:
|
||||
disabled: []
|
||||
check: tig --version 2>&1 | grep -E '[0-9][.0-9]+' || (tig --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: tig
|
||||
vim:
|
||||
disabled: []
|
||||
check: vim --version | grep ^VIM | grep -E '[0-9]\.[0-9]+' || (vim --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: vim
|
||||
vue-cli:
|
||||
disabled: []
|
||||
check: vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: "@vue/cli"
|
||||
binary: vue
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
webpack-cli:
|
||||
disabled: []
|
||||
check: webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: webpack-cli
|
||||
binary: webpack-cli
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
wkhtmltopdf:
|
||||
disabled: [5.2, 5.3, 5.4, 5.5]
|
||||
check: wkhtmltopdf --version | grep ^wkhtmltopdf | grep -E '[0-9]\.[0-9]+' | grep patched || (wkhtmltopdf --version; false)
|
||||
all:
|
||||
type: custom
|
||||
pre: OS_RELEASE="bullseye"
|
||||
command: |
|
||||
DEB_HOST_ARCH="$( dpkg-architecture --query DEB_HOST_ARCH )" \
|
||||
&& WK_URL="$( \
|
||||
curl -sS -k -L --fail 'https://wkhtmltopdf.org/downloads.html' \
|
||||
| awk -F'"' "/wkhtmltopdf.*${OS_RELEASE}_${DEB_HOST_ARCH}\.deb/{print \$(NF-1)}" \
|
||||
| head -1 \
|
||||
)" \
|
||||
&& echo "URL: ${WK_URL}" \
|
||||
&& curl -sS -k -L --fail -o /tmp/wkhtmltopdf.deb "${WK_URL}" \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont2
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
7.2:
|
||||
type: custom
|
||||
pre: OS_RELEASE="buster"
|
||||
7.1:
|
||||
type: custom
|
||||
pre: OS_RELEASE="buster"
|
||||
7.0:
|
||||
type: custom
|
||||
pre: OS_RELEASE="stretch"
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont1
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
5.6:
|
||||
type: custom
|
||||
pre: OS_RELEASE="stretch"
|
||||
run_dep:
|
||||
- fontconfig
|
||||
- libfontenc1
|
||||
- libxfont1
|
||||
- libxrender1
|
||||
- xfonts-75dpi
|
||||
- xfonts-base
|
||||
- xfonts-encodings
|
||||
- xfonts-utils
|
||||
wp-cli:
|
||||
disabled: [5.2]
|
||||
check: wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false)
|
||||
all:
|
||||
type: custom
|
||||
command: curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp
|
||||
build_dep: []
|
||||
# Fixes: sh: 1: less: not found during 'wp help'
|
||||
# It internally pipes it to less.
|
||||
run_dep: [less]
|
||||
pre: WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar"
|
||||
post: chmod +x /usr/local/bin/wp
|
||||
5.5:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar"
|
||||
5.4:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar"
|
||||
5.3:
|
||||
type: custom
|
||||
pre: WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar"
|
||||
wscat:
|
||||
disabled: []
|
||||
check: wscat --version | grep -E '[0-9][.0-9]+' || (wscat --version; false)
|
||||
all:
|
||||
type: npm
|
||||
package: wscat
|
||||
binary: wscat
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
yamllint:
|
||||
disabled: []
|
||||
check: yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' || (yamllint --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
# pre:
|
||||
# post:
|
||||
yq:
|
||||
disabled: []
|
||||
check: yq --version 2>&1 | grep -E '[0-9][.0-9]+' || (yq --version; false)
|
||||
all:
|
||||
type: pip
|
||||
version:
|
||||
build_dep: []
|
||||
run_dep: []
|
||||
pre:
|
||||
post:
|
||||
zsh:
|
||||
disabled: []
|
||||
check: zsh --version 2>&1 | grep -E '[0-9][.0-9]+' || (zsh --version; false)
|
||||
all:
|
||||
type: apt
|
||||
package: zsh
|
||||
@@ -10,3 +10,5 @@ php-7.2 php_version=7.2 ansible_connection=local
|
||||
php-7.3 php_version=7.3 ansible_connection=local
|
||||
php-7.4 php_version=7.4 ansible_connection=local
|
||||
php-8.0 php_version=8.0 ansible_connection=local
|
||||
php-8.1 php_version=8.1 ansible_connection=local
|
||||
php-8.2 php_version=8.2 ansible_connection=local
|
||||
283
.ansible/jinja2/macros-work.j2
Normal file
283
.ansible/jinja2/macros-work.j2
Normal file
@@ -0,0 +1,283 @@
|
||||
{##################################################################################################
|
||||
# IMPORTS
|
||||
##################################################################################################}
|
||||
{% import './jinja2/macros.j2' as fn %}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# GENERIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Check if not disabled
|
||||
###
|
||||
### Returns 'true' string if not disabled, otherwise returns nothing
|
||||
###
|
||||
-#}
|
||||
{%- macro is_not_disabled(php, name, items) -%}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{{- 'true' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'type'
|
||||
###
|
||||
### Returns type string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_type(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'type', '<WRONG TYPE>') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'pre'
|
||||
###
|
||||
### Returns pre string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_pre(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'pre', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'post'
|
||||
###
|
||||
### Returns post string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_post(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'post', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'build_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of build_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_build_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'build_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'run_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of run_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_run_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'run_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# TOOLS SPECIFIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{# --------------------------------------------- REPO ----------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'deb'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_deb(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'deb', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'key'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_key(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'key', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- CUSTOM --------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'command'
|
||||
### type: custom
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_custom_get_command(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'command', 'custom', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- NPM ------------------------------------------ -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'npm', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'npm', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '@' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'npm', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- COMPOSER ------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'composer'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_composer(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'composer', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'composer', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ':' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'flags'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_flags(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'flags', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- RUBYGEM -------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'rubygem', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'rubygem', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ' -v ' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- PIP ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'pip', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'pip', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '==' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- APT ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: apt
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_apt_get_package(php, name, items) -%}
|
||||
{%- if is_not_disabled(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'apt', '') -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
90
.ansible/jinja2/macros.j2
Normal file
90
.ansible/jinja2/macros.j2
Normal file
@@ -0,0 +1,90 @@
|
||||
{##################################################################################################
|
||||
# HELPER MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#
|
||||
### Get generic string value of key if type value matches.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### type: The type key must match this type string
|
||||
### default: Default value to return if none was found
|
||||
#}
|
||||
{%- macro get_val_by_type(php, name, items, key, type, default='' ) -%}
|
||||
{#- Default return value -#}
|
||||
{%- set result = default -%}
|
||||
|
||||
{#- PHP Version specific -#}
|
||||
{%- if php in items[name] and items[name][php]['type'] == type -%}
|
||||
{%- if key in items[name][php] and items[name][php][key] -%}
|
||||
{%- set result = items[name][php][key] -%}
|
||||
{%- elif key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{#- Defined in 'all' -#}
|
||||
{%- elif 'all' in items[name] and items[name]['all']['type'] == type -%}
|
||||
{%- if key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
{{- result -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic string value of key.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### default: Default value to return if none was found
|
||||
-#}
|
||||
{%- macro get_val(php, name, items, key, default='') -%}
|
||||
{%- if php in items[name] and key in items[name][php] and items[name][php][key] -%}
|
||||
{{- items[name][php][key] -}}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{{- items[name]['all'][key] -}}
|
||||
{%- else -%}
|
||||
{{- default -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic list value (space separated) of not disabled PHP versions.
|
||||
###
|
||||
### Returns jsonified string of a list.
|
||||
###
|
||||
### Usage:
|
||||
### {%- set list = [] -%}
|
||||
### {%- for val in get_enabled_list(php_version, item, items_available) | from_json -%}
|
||||
### {%- if val -%}
|
||||
### {{- list.append(val) -}}
|
||||
### {%- endif -%}
|
||||
### {%- endfor -%}
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
-#}
|
||||
{%- macro get_list_if_enabled(php, name, items, key) -%}
|
||||
{%- set list = [] %}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{#- Version specific build dependency available? -#}
|
||||
{%- if php in items[name] and key in items[name][php] -%}
|
||||
{%- for val in items[name][php][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{#- Generic build dependency available? -#}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] -%}
|
||||
{%- for val in items[name]['all'][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{{- list | to_json -}}
|
||||
{%- endmacro -%}
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
|
||||
- name: generate Dockerfiles
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dst }}"
|
||||
force: True
|
||||
@@ -10,7 +10,7 @@
|
||||
- "{{ template_dockerfiles }}"
|
||||
|
||||
- name: generate php configuration files
|
||||
template:
|
||||
ansible.builtin.template:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dst }}"
|
||||
force: True
|
||||
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
---
|
||||
github: [cytopia]
|
||||
patreon: devilbox
|
||||
106
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
106
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
---
|
||||
name: "\U0001F41B Bug report"
|
||||
description: File a bug report
|
||||
title: "[Bug]: "
|
||||
labels: ["bug", "status:triage"]
|
||||
assignees:
|
||||
- cytopia
|
||||
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: (Optional) Error message
|
||||
description: If you encountered any error message, copy and paste it here. This will be used for googling the issue.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
label: What went wrong?
|
||||
description: What exactly went wrong and what bug did you encounter?
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected-behaviour
|
||||
attributes:
|
||||
label: Expected behaviour
|
||||
description: What did you expect to happen instead?
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: steps-to-reproduce
|
||||
attributes:
|
||||
label: How can we reproduce the bug?
|
||||
description: How do you trigger this bug? Please walk us through it step by step in detail. This is crucial in order to triage the bug and support you in resolving it.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: host-os
|
||||
attributes:
|
||||
label: Host Operating System
|
||||
description: What operating system are you using?
|
||||
multiple: false
|
||||
options:
|
||||
- Linux
|
||||
- macOS
|
||||
- Windows
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: host-platform
|
||||
attributes:
|
||||
label: Host Platform (amd64, arm64, other)
|
||||
description: What host platform are you running on?
|
||||
options:
|
||||
- amd64
|
||||
- arm64
|
||||
- other
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: (Linux only) Is SELinux enabled?
|
||||
description: When using Linux as your host operating system, check if SELinux is enabled or not.
|
||||
options:
|
||||
- Yes, SELinux is enabled
|
||||
- No, SELinux is disabled
|
||||
- I don't know
|
||||
- I am not on Linux
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: docker-version
|
||||
attributes:
|
||||
label: Docker version
|
||||
description: "What Docker version are you using? Please copy and paste the output of `docker --version` into this text area."
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: log-docker
|
||||
attributes:
|
||||
label: "Log: docker logs"
|
||||
description: "Please copy and paste the output of `docker logs` into this text area"
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: (Optional) Additional information
|
||||
description: Add any additional information that might help with this bug report.
|
||||
validations:
|
||||
required: false
|
||||
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Devilbox Discord Chat
|
||||
url: https://discord.gg/2wP3V6kBj4
|
||||
about: Please notify or discuss about any other requests here.
|
||||
- name: Devilbox Discourse Forum
|
||||
url: https://devilbox.discourse.group/
|
||||
about: Please ask and answer general questions here.
|
||||
- name: Devilbox documentation
|
||||
url: https://devilbox.readthedocs.io/
|
||||
about: Find the Devilbox documentation here.
|
||||
37
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
37
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: "\U0001F4DD Documentation"
|
||||
description: Something is missing, unclear or wrong in the documentation.
|
||||
title: "[Docs]: "
|
||||
labels: ["documentation", "status:triage"]
|
||||
assignees:
|
||||
- cytopia
|
||||
|
||||
body:
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is wrong in the documentation?
|
||||
description: Tell us, what is wrong in the documentation?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is unclear in the documentation?
|
||||
description: Tell us, what is unclear in the documentation?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is missing in the documentation?
|
||||
description: Tell us, what is missing in the documentation?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Are you willing to provide a PR to address this?
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
36
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
36
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: "✨ Feature request"
|
||||
description: Suggest an idea or feature for this project
|
||||
title: "[Feature]: "
|
||||
labels: ["feature", "status:triage"]
|
||||
assignees: [cytopia]
|
||||
|
||||
body:
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is your idea or feature suggestion?
|
||||
description: Tell us, what idea or feature you suggest to be added.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Benefits
|
||||
description: Tell us, how this will be beneficial.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Where can we find information about this?
|
||||
description: If you are proposing a software or tool, please add relevant links and documentation.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Are you willing to provide a PR to address this?
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
45
.github/ISSUE_TEMPLATE/howto.yml
vendored
Normal file
45
.github/ISSUE_TEMPLATE/howto.yml
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
name: "❔ Question"
|
||||
description: How do I do X or Y?
|
||||
title: "[Question]: "
|
||||
labels: ["question", "status:triage"]
|
||||
assignees: [cytopia]
|
||||
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
If this is a generic question, please consider using the [Discord Chat](https://discord.gg/2wP3V6kBj4) or the [Devilbox forum](https://devilbox.discourse.group/) instead.
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Have you already checked elsewhere?
|
||||
description: You may select more than one.
|
||||
options:
|
||||
- label: I have checked existing issues
|
||||
- label: I have googled already with no luck
|
||||
- label: I have not done any of the above
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is your question?
|
||||
description: Tell the community, what your question is. Be as specific as possible to make it easier for other people to answer your question.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What have you tried already?
|
||||
description: Add some details on what you have tried already, so this can be ruled out.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is your goal?
|
||||
description: Tell the community, what you want to accomplish? This might be helpful to know in order to prevent [XY problems](https://en.wikipedia.org/wiki/XY_problem).
|
||||
validations:
|
||||
required: true
|
||||
21
.github/ISSUE_TEMPLATE/report.yml
vendored
Normal file
21
.github/ISSUE_TEMPLATE/report.yml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: "🕬 Report"
|
||||
description: Report something to the maintainer
|
||||
title: "[Report]: "
|
||||
labels: ["report", "status:triage"]
|
||||
assignees:
|
||||
- cytopia
|
||||
|
||||
body:
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Report something to the maintainer such as versions are outdated or pipelines are not running, etc. For anything else please use other issue types. Thanks for taking the time!
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Report
|
||||
description: What do you want to report?
|
||||
validations:
|
||||
required: true
|
||||
8
.github/dependabot.yml
vendored
Normal file
8
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
version: 2
|
||||
updates:
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
105
.github/labels.yml
vendored
Normal file
105
.github/labels.yml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
# The labels in this file are automatically synced with the repository
|
||||
# using the micnncim/action-label-syncer action.
|
||||
---
|
||||
|
||||
###
|
||||
### Pull Requests
|
||||
###
|
||||
- name: C-dependency
|
||||
color: 1abc9c
|
||||
description: "Category: Dependency"
|
||||
- name: PR-block
|
||||
color: 3498db
|
||||
description: "Pull Request: Do not merge"
|
||||
- name: PR-merge
|
||||
color: 3498db
|
||||
description: "Pull Request: Merge when ready"
|
||||
|
||||
###
|
||||
### General Issues
|
||||
###
|
||||
- name: bug
|
||||
description: "Bug Report"
|
||||
color: ee0701
|
||||
- name: report
|
||||
description: "General Report"
|
||||
color: ef561f
|
||||
- name: feature
|
||||
description: "Feature Request"
|
||||
color: dc8b10
|
||||
- name: question
|
||||
description: "General question"
|
||||
color: cc317c
|
||||
- name: documentation
|
||||
description: "Documentation related"
|
||||
color: 45b046
|
||||
|
||||
###
|
||||
### Status: Issue progress
|
||||
###
|
||||
- name: "status:triage"
|
||||
description: "Issue needs Triaging"
|
||||
color: f2a7cf
|
||||
- name: "status:confirmed"
|
||||
description: "Issue is confirmed"
|
||||
color: f2a7cf
|
||||
- name: "status:needs-more-info"
|
||||
description: "Issue needs more info"
|
||||
color: f2a7cf
|
||||
|
||||
###
|
||||
### Close
|
||||
###
|
||||
- name: "issue:invalid"
|
||||
description: ""
|
||||
color: f5c7fc
|
||||
- name: "issue:invalid-type"
|
||||
description: ""
|
||||
color: f5c7fc
|
||||
- name: "issue:duplicate"
|
||||
description: ""
|
||||
color: f5c7fc
|
||||
- name: "issue:wontfix"
|
||||
description: ""
|
||||
color: f5c7fc
|
||||
- name: "issue:stale"
|
||||
description: ""
|
||||
color: f5c7fc
|
||||
|
||||
###
|
||||
### Issue types
|
||||
###
|
||||
- name: "type:extension"
|
||||
description: ""
|
||||
color: 0c9cf2
|
||||
- name: "type:tool"
|
||||
description: ""
|
||||
color: 0c9cf2
|
||||
- name: "type:env-var"
|
||||
description: ""
|
||||
color: 0c9cf2
|
||||
- name: "type:config"
|
||||
description: ""
|
||||
color: 0c9cf2
|
||||
|
||||
###
|
||||
### Issue Host specific
|
||||
###
|
||||
- name: "host:linux"
|
||||
description: ""
|
||||
color: fbca04
|
||||
- name: "host:macos"
|
||||
description: ""
|
||||
color: fbca04
|
||||
- name: "host:windows"
|
||||
description: ""
|
||||
color: fbca04
|
||||
- name: "arch:amd64"
|
||||
description: ""
|
||||
color: fbca04
|
||||
- name: "arch:arm64"
|
||||
description: ""
|
||||
color: fbca04
|
||||
- name: "arch:other"
|
||||
description: ""
|
||||
color: fbca04
|
||||
33
.github/release-drafter.yml
vendored
Normal file
33
.github/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name-template: '$RESOLVED_VERSION 🌈'
|
||||
tag-template: '$RESOLVED_VERSION'
|
||||
version-template: '$MAJOR.$MINOR'
|
||||
categories:
|
||||
- title: '🚀 Features'
|
||||
labels:
|
||||
- 'feature'
|
||||
- 'enhancement'
|
||||
- title: '🐛 Bug Fixes'
|
||||
labels:
|
||||
- 'fix'
|
||||
- 'bugfix'
|
||||
- 'bug'
|
||||
- title: '🧰 Maintenance'
|
||||
label: 'chore'
|
||||
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
||||
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
||||
version-resolver:
|
||||
major:
|
||||
labels:
|
||||
- 'major'
|
||||
minor:
|
||||
labels:
|
||||
- 'minor'
|
||||
patch:
|
||||
labels:
|
||||
- 'patch'
|
||||
default: minor
|
||||
template: |
|
||||
## Changes
|
||||
|
||||
$CHANGES
|
||||
365
.github/workflows/action-schedule_master.yml
vendored
Normal file
365
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_master.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) 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/9) 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/9) 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/9) 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/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
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: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
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: slim
|
||||
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 }}
|
||||
365
.github/workflows/action-schedule_tags.yml
vendored
Normal file
365
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,365 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_tags.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) 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/9) 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/9) 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/9) 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/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
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: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
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: slim
|
||||
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 }}
|
||||
387
.github/workflows/action.yml
vendored
Normal file
387
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,387 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: build
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Push or pull_request will be determined in jobs.configure.enabled
|
||||
push:
|
||||
paths:
|
||||
- '.ansible/**'
|
||||
- '.github/workflows/action.yml'
|
||||
- '.github/workflows/params.yml'
|
||||
- 'Dockerfiles/**'
|
||||
- 'php_modules/**'
|
||||
- 'php_tools/**'
|
||||
- 'tests/**'
|
||||
- 'Makefile'
|
||||
- '!**.md'
|
||||
- '!.ansible/ansible.cfg'
|
||||
pull_request:
|
||||
paths:
|
||||
- '.ansible/**'
|
||||
- '.github/workflows/action.yml'
|
||||
- '.github/workflows/params.yml'
|
||||
- 'Dockerfiles/**'
|
||||
- 'php_modules/**'
|
||||
- 'php_tools/**'
|
||||
- 'tests/**'
|
||||
- 'Makefile'
|
||||
- '!**.md'
|
||||
- '!.ansible/ansible.cfg'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/9) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/9) 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/9) 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/9) 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/9) 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/9) Build & Test slim
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-slim:
|
||||
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: slim
|
||||
stage_prev: prod
|
||||
|
||||
test-slim:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/9) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-slim
|
||||
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: slim
|
||||
|
||||
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
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/9) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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: slim
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-mods
|
||||
- test-prod
|
||||
- test-slim
|
||||
- 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 }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (9/9) 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-slim:
|
||||
needs:
|
||||
- configure
|
||||
- push-slim
|
||||
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: slim
|
||||
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 }}
|
||||
65
.github/workflows/generator.yml
vendored
Normal file
65
.github/workflows/generator.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: generator
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- '.ansible/**'
|
||||
- '.github/workflows/action.yml'
|
||||
- '.github/workflows/params.yml'
|
||||
- 'Dockerfiles/**'
|
||||
- 'php_modules/**'
|
||||
- 'php_tools/**'
|
||||
- 'tests/**'
|
||||
- 'Makefile'
|
||||
- '!**.md'
|
||||
- '!.ansible/ansible.cfg'
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
generator:
|
||||
name: "Generator"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Python 3.9
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: Install required Python packages
|
||||
run: |
|
||||
pip install yamllib
|
||||
pip install typing
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Lint repository
|
||||
# ------------------------------------------------------------
|
||||
- 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; }
|
||||
46
.github/workflows/linting.yml
vendored
46
.github/workflows/linting.yml
vendored
@@ -1,27 +1,43 @@
|
||||
---
|
||||
|
||||
###
|
||||
### Lints all generic and json files in the whole git repository
|
||||
###
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: lint
|
||||
|
||||
name: Linting
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
lint:
|
||||
name: "[ ${{ matrix.job }} ]"
|
||||
name: "Lint"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
matrix:
|
||||
job: [gen-dockerfiles]
|
||||
steps:
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v1
|
||||
- name: Diff generated Docker files
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Lint repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Lint Files
|
||||
run: |
|
||||
make "${JOB}"
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
env:
|
||||
JOB: ${{ matrix.job }}
|
||||
make lint-files
|
||||
|
||||
- name: Lint Yaml
|
||||
run: |
|
||||
make lint-yaml
|
||||
|
||||
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
|
||||
333
.github/workflows/php-ci.yml
vendored
333
.github/workflows/php-ci.yml
vendored
@@ -1,333 +0,0 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: PHP-CI
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
pull_request:
|
||||
|
||||
# Runs on master Branch and Tags
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- '[0-9]+.[0-9]+*'
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
diagnostics:
|
||||
name: Diagnostics
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Show environment
|
||||
run: |
|
||||
env
|
||||
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#github-context
|
||||
- name: Show GitHub variables
|
||||
run: |
|
||||
echo "github.actor: ${{ github.actor }}"
|
||||
echo "github.ref: ${{ github.ref }}"
|
||||
echo "github.base_ref: ${{ github.base_ref }}"
|
||||
echo "github.head_ref: ${{ github.head_ref }}"
|
||||
echo "github.event: ${{ github.event }}"
|
||||
echo "github.event_name: ${{ github.event_name }}"
|
||||
echo "github.event.pull_request.base.repo.id: ${{ github.event.pull_request.base.repo.id }}"
|
||||
echo "github.event.pull_request.head.repo.id: ${{ github.event.pull_request.head.repo.id }}"
|
||||
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "${GITHUB_CONTEXT}"
|
||||
|
||||
- name: Dump Runner context
|
||||
env:
|
||||
RUNNER_CONTEXT: ${{ toJson(runner) }}
|
||||
run: echo "${RUNNER_CONTEXT}"
|
||||
|
||||
|
||||
build:
|
||||
name: "[ ${{ matrix.version }} ]"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
matrix:
|
||||
# Adding all targets and only run them if they exist.
|
||||
# Prevents us from forgetting to update this in case
|
||||
# we add new envs in terragrunt.
|
||||
version:
|
||||
- '5.2'
|
||||
- '5.3'
|
||||
- '5.4'
|
||||
- '5.5'
|
||||
- '5.6'
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- '8.0'
|
||||
steps:
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Checkout repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Set variables
|
||||
id: vars
|
||||
run: |
|
||||
# Set git branch or git tag as slug
|
||||
if [[ ${GITHUB_REF} =~ ^refs\/tags\/ ]]; then
|
||||
GIT_TYPE=TAG
|
||||
GIT_SLUG="${GITHUB_REF/refs\/tags\//}"
|
||||
else
|
||||
GIT_TYPE=BRANCH
|
||||
if [ -n "${GITHUB_HEAD_REF}" ]; then
|
||||
GIT_SLUG="${GITHUB_HEAD_REF}"
|
||||
else
|
||||
GIT_SLUG="${GITHUB_REF/refs\/heads\//}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Export variable
|
||||
# # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env
|
||||
echo ::set-env name=GIT_TYPE::${GIT_TYPE}
|
||||
echo ::set-env name=GIT_SLUG::${GIT_SLUG}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Base
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Base
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Base
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Mods
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Mods
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Mods
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Prod
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Prod
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Prod
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Work
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Work
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Work
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Diff README.md
|
||||
# ------------------------------------------------------------
|
||||
- name: Diff README.md
|
||||
run: |
|
||||
make gen-readme VERSION=${VERSION}
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Push build artifacts
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# Only run this, if the PR was created by the repo owner
|
||||
- name: Publish images (only repo owner)
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Info output
|
||||
echo "Git Type: ${GIT_TYPE}"
|
||||
echo "Git Slug: ${GIT_SLUG}"
|
||||
|
||||
# Login
|
||||
echo "retry make login USER= PASS="
|
||||
|
||||
# Push
|
||||
if [ "${GIT_TYPE}" = "TAG" ]; then
|
||||
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
|
||||
else
|
||||
if [ "${GIT_SLUG}" = "master" ]; then
|
||||
echo "retry make push-base VERSION=${VERSION}"
|
||||
echo "retry make push-mods VERSION=${VERSION}"
|
||||
echo "retry make push-prod VERSION=${VERSION}"
|
||||
echo "retry make push-work VERSION=${VERSION}"
|
||||
else
|
||||
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
|
||||
fi
|
||||
fi
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
||||
&& (
|
||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'pull_request' && (startsWith(github.head_ref, 'release-')))
|
||||
)
|
||||
328
.github/workflows/php-nightly.yml
vendored
328
.github/workflows/php-nightly.yml
vendored
@@ -1,328 +0,0 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: PHP-Nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs daily
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
diagnostics:
|
||||
name: Diagnostics
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Show environment
|
||||
run: |
|
||||
env
|
||||
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#github-context
|
||||
- name: Show GitHub variables
|
||||
run: |
|
||||
echo "github.actor: ${{ github.actor }}"
|
||||
echo "github.ref: ${{ github.ref }}"
|
||||
echo "github.base_ref: ${{ github.base_ref }}"
|
||||
echo "github.head_ref: ${{ github.head_ref }}"
|
||||
echo "github.event: ${{ github.event }}"
|
||||
echo "github.event_name: ${{ github.event_name }}"
|
||||
echo "github.event.pull_request.base.repo.id: ${{ github.event.pull_request.base.repo.id }}"
|
||||
echo "github.event.pull_request.head.repo.id: ${{ github.event.pull_request.head.repo.id }}"
|
||||
|
||||
- name: Dump GitHub context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "${GITHUB_CONTEXT}"
|
||||
|
||||
- name: Dump Runner context
|
||||
env:
|
||||
RUNNER_CONTEXT: ${{ toJson(runner) }}
|
||||
run: echo "${RUNNER_CONTEXT}"
|
||||
|
||||
|
||||
build:
|
||||
name: "[ ${{ matrix.version }} ]"
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: False
|
||||
matrix:
|
||||
# Adding all targets and only run them if they exist.
|
||||
# Prevents us from forgetting to update this in case
|
||||
# we add new envs in terragrunt.
|
||||
version:
|
||||
- '5.2'
|
||||
- '5.3'
|
||||
- '5.4'
|
||||
- '5.5'
|
||||
- '5.6'
|
||||
- '7.0'
|
||||
- '7.1'
|
||||
- '7.2'
|
||||
- '7.3'
|
||||
- '7.4'
|
||||
- '8.0'
|
||||
steps:
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Checkout repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v1
|
||||
|
||||
- name: Set variables
|
||||
id: vars
|
||||
run: |
|
||||
# Set git branch or git tag as slug
|
||||
if [[ ${GITHUB_REF} =~ ^refs\/tags\/ ]]; then
|
||||
GIT_TYPE=TAG
|
||||
GIT_SLUG="${GITHUB_REF/refs\/tags\//}"
|
||||
else
|
||||
GIT_TYPE=BRANCH
|
||||
if [ -n "${GITHUB_HEAD_REF}" ]; then
|
||||
GIT_SLUG="${GITHUB_HEAD_REF}"
|
||||
else
|
||||
GIT_SLUG="${GITHUB_REF/refs\/heads\//}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Export variable
|
||||
# # https://help.github.com/en/actions/automating-your-workflow-with-github-actions/development-tools-for-github-actions#set-an-environment-variable-set-env
|
||||
echo ::set-env name=GIT_TYPE::${GIT_TYPE}
|
||||
echo ::set-env name=GIT_SLUG::${GIT_SLUG}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Base
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Base
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Base
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-base VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Mods
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Mods
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Mods
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-mods VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Prod
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Prod
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Prod
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-prod VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Work
|
||||
# ------------------------------------------------------------
|
||||
- name: Build Work
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make build-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
- name: Test Work
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
retry make test-work VERSION=${VERSION}
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Diff README.md
|
||||
# ------------------------------------------------------------
|
||||
- name: Diff README.md
|
||||
run: |
|
||||
make gen-readme VERSION=${VERSION}
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Push build artifacts
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# Only run this, if the PR was created by the repo owner
|
||||
- name: Publish images (only repo owner)
|
||||
run: |
|
||||
retry() {
|
||||
for ((n=0; n<${RETRIES}; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
sleep 10;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Info output
|
||||
echo "Git Type: ${GIT_TYPE}"
|
||||
echo "Git Slug: ${GIT_SLUG}"
|
||||
|
||||
# Login
|
||||
echo "retry make login USER= PASS="
|
||||
|
||||
# Push
|
||||
if [ "${GIT_TYPE}" = "TAG" ]; then
|
||||
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
|
||||
else
|
||||
if [ "${GIT_SLUG}" = "master" ]; then
|
||||
echo "retry make push-base VERSION=${VERSION}"
|
||||
echo "retry make push-mods VERSION=${VERSION}"
|
||||
echo "retry make push-prod VERSION=${VERSION}"
|
||||
echo "retry make push-work VERSION=${VERSION}"
|
||||
else
|
||||
echo "retry make push-base VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-mods VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-prod VERSION=${VERSION}-${GIT_SLUG}"
|
||||
echo "retry make push-work VERSION=${VERSION}-${GIT_SLUG}"
|
||||
fi
|
||||
fi
|
||||
env:
|
||||
VERSION: ${{ matrix.version }}
|
||||
RETRIES: 5
|
||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
||||
&& (
|
||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
||||
||
|
||||
(github.event_name == 'pull_request' && (startsWith(github.head_ref, 'release-')))
|
||||
)
|
||||
19
.github/workflows/release-drafter.yml
vendored
Normal file
19
.github/workflows/release-drafter.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: Release Drafter
|
||||
|
||||
on:
|
||||
push:
|
||||
# branches to consider in the event; optional, defaults to all
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
update_release_draft:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Drafts your next Release notes as Pull Requests are merged into "master"
|
||||
- uses: release-drafter/release-drafter@v5
|
||||
with:
|
||||
publish: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.RELEASE_DRAFTER_TOKEN }}
|
||||
25
.github/workflows/repository.yml
vendored
Normal file
25
.github/workflows/repository.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: Repository
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- .github/labels.yml
|
||||
|
||||
jobs:
|
||||
labels:
|
||||
name: Labels
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Sync labels
|
||||
uses: micnncim/action-label-syncer@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
manifest: .github/labels.yml
|
||||
77
.gitignore
vendored
77
.gitignore
vendored
@@ -1,74 +1,5 @@
|
||||
######################################
|
||||
# CUSTOM
|
||||
######################################
|
||||
.ansible/*.retry
|
||||
|
||||
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
|
||||
Makefile.python
|
||||
|
||||
150
.travis.yml
150
.travis.yml
@@ -1,150 +0,0 @@
|
||||
---
|
||||
|
||||
###
|
||||
### Travis settings
|
||||
###
|
||||
sudo: required
|
||||
language: minimal
|
||||
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
|
||||
- PHP=8.0
|
||||
|
||||
|
||||
###
|
||||
### Install requirements
|
||||
###
|
||||
install:
|
||||
- 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
|
||||
|
||||
- retry() {
|
||||
for ((n=0; n<10; n++)); do
|
||||
echo "[${n}] ${*}";
|
||||
if eval "${*}"; then
|
||||
return 0;
|
||||
fi;
|
||||
done;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
###
|
||||
### Check generation changes, build and test
|
||||
###
|
||||
before_script:
|
||||
# Regenerate Dockerfiles and make sure nothing has changed (every stage)
|
||||
- make gen-dockerfiles
|
||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
# Build (multiple tries due to network outages)
|
||||
- retry make build-base VERSION=${PHP}
|
||||
#- retry make test-base VERSION=${PHP}
|
||||
|
||||
- retry make build-mods VERSION=${PHP}
|
||||
#- retry make test-mods VERSION=${PHP}
|
||||
|
||||
- retry make build-prod VERSION=${PHP}
|
||||
#- retry make test-prod VERSION=${PHP}
|
||||
|
||||
- retry make build-work VERSION=${PHP}
|
||||
- retry make test-work VERSION=${PHP}
|
||||
|
||||
# Test if PHP modules have changed
|
||||
- make gen-readme VERSION=${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";
|
||||
until docker push "${IMAGE}:${PHP}-base"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-mods"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-prod"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-work"; do sleep 1; done;
|
||||
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}" &&
|
||||
until docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}"; do sleep 1; done;
|
||||
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}" &&
|
||||
until docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}"; do sleep 1; done;
|
||||
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}" &&
|
||||
until docker push "${IMAGE}:${PHP}-base-${MY_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-mods-${MY_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-prod-${MY_TAG}"; do sleep 1; done;
|
||||
until docker push "${IMAGE}:${PHP}-work-${MY_TAG}"; do sleep 1; done;
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on normal branches";
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on PR";
|
||||
fi
|
||||
469
CHANGELOG.md
469
CHANGELOG.md
@@ -4,6 +4,475 @@
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release 0.151
|
||||
|
||||
### Added
|
||||
- Allow to use supervisorctl to be able to reload PHP configuration without restarting
|
||||
|
||||
|
||||
## Release 0.150
|
||||
|
||||
### Added
|
||||
- Added `xhprof` PHP extension
|
||||
|
||||
|
||||
## Release 0.149
|
||||
|
||||
### Added
|
||||
- Added `net-tools` package
|
||||
|
||||
|
||||
## Release 0.148
|
||||
|
||||
### Added
|
||||
- Added `wscat` to work with websockets
|
||||
|
||||
|
||||
## Release 0.147
|
||||
|
||||
### Fixed
|
||||
- Fixed wkhtmltopdf version finder during install
|
||||
- Fixed wp-cli runtime requirements (needs `less` in order to function)
|
||||
|
||||
|
||||
## Release 0.146
|
||||
|
||||
This release adds lots of documentation about recently added features.
|
||||
|
||||
### Added
|
||||
- Documentation
|
||||
|
||||
|
||||
## Release 0.145
|
||||
|
||||
This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP tools and to configure their respective order of building and installing.
|
||||
|
||||
Additionally it introduces a new flavour: `slim` which is an intermediated stage between `prod` and `work`. It allows for a slim image with only required cli tools to work with the Devilbox.
|
||||
|
||||
### Added
|
||||
- New PHP Flavour: `slim`
|
||||
- Added `mhsendmail` for `arm64` architecture
|
||||
- Added `wkhtmltopdf` for `arm64 architecture [#252](https://github.com/devilbox/docker-php-fpm/issues/252)
|
||||
- Added `taskfile` (https://taskfile.dev/)
|
||||
- Added mechanism to easily build custom images with custom set of PHP tools
|
||||
- Added automated PHP tools dependency resolver (order of built is always correct)
|
||||
- Added tons of documentation
|
||||
|
||||
### Changed
|
||||
- Split out PHP tools into separate directories
|
||||
|
||||
### Fixed
|
||||
- Fixed `xdebug` build
|
||||
|
||||
|
||||
## Release 0.144
|
||||
|
||||
This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP extensions and to configure their respective order of building and loading.
|
||||
|
||||
### Added
|
||||
- Added PHP extension: `lz4`
|
||||
- Added PHP extension: `lzf`
|
||||
- Added PHP extension: `zstd`
|
||||
- Added mechanism to easily build custom images with custom set of PHP extensions
|
||||
- Added automated PHP extension dependency resolver (order of built is always correct)
|
||||
- Added tons of documentation
|
||||
- Added Credit to contributors
|
||||
|
||||
### Changed
|
||||
- Added serializer for Redis extension: `lz4`, `lzf` and `zstd`
|
||||
- Restructured Documentation
|
||||
- Split out PHP extensions into separate directories
|
||||
|
||||
|
||||
## Release 0.143
|
||||
|
||||
### Added
|
||||
- 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
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.3
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.4-fpm
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.4
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.5-fpm
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-5.5
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
@@ -44,15 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -f /etc/apt/sources.list \
|
||||
&& { \
|
||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
||||
} | tee /etc/apt/sources.list
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.6-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.0-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.1-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.2-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.3-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:7.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.0
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -44,8 +45,10 @@ RUN set -eux \
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
&& 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/*
|
||||
|
||||
|
||||
|
||||
107
Dockerfiles/base/Dockerfile-8.1
Normal file
107
Dockerfiles/base/Dockerfile-8.1
Normal file
@@ -0,0 +1,107 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./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"]
|
||||
107
Dockerfiles/base/Dockerfile-8.2
Normal file
107
Dockerfiles/base/Dockerfile-8.2
Normal file
@@ -0,0 +1,107 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./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} || true" "${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} || true" "${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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.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
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-base as builder
|
||||
|
||||
|
||||
@@ -6,9 +7,8 @@ FROM devilbox/php-fpm:5.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libbz2-dev \
|
||||
@@ -26,24 +26,47 @@ RUN set -eux \
|
||||
libmagic-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librecode-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libzip-dev \
|
||||
snmp \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -60,29 +83,12 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install amqp-1.4.0 \
|
||||
&& pecl install amqp-1.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& true
|
||||
@@ -150,29 +156,19 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -200,7 +196,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -231,7 +227,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -241,21 +237,11 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -270,6 +256,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -292,6 +289,25 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: oauth --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -325,7 +341,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -340,6 +356,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_pgsql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -356,6 +383,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phar --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -375,25 +418,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -407,11 +431,19 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: soap --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sockets --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -420,6 +452,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -455,10 +498,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
@@ -503,22 +546,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -526,13 +558,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -556,27 +588,20 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaspell15 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
libjpeg62-turbo \
|
||||
libmagic1 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libmysqlclient18 \
|
||||
@@ -587,8 +612,10 @@ RUN set -eux \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
@@ -597,7 +624,18 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
###
|
||||
### Verify
|
||||
@@ -630,12 +668,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -664,24 +708,24 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mysql$' \
|
||||
&& php-fpm -m | grep -oiE '^mysql$' \
|
||||
&& php -m | grep -oiE '^mysqli$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^Zend Opcache$' \
|
||||
@@ -690,8 +734,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -706,6 +748,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
&& php-fpm -m | grep -oiE '^phar$' \
|
||||
&& php -m | grep -oiE '^posix$' \
|
||||
@@ -715,8 +759,6 @@ RUN set -eux \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
@@ -733,6 +775,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||
&& php -m | grep -oiE '^sysvsem$' \
|
||||
@@ -749,8 +797,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -759,11 +805,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||
&& php -m | grep -oiE '^xsl$' \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,14 @@ FROM devilbox/php-fpm:5.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -28,6 +29,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,14 +42,39 @@ RUN set -eux \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -64,23 +91,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -151,24 +161,19 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -185,7 +190,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -206,7 +211,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -235,7 +240,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -244,30 +249,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -282,6 +269,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -315,10 +313,21 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
# -------------------- Installing PHP Extension: mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -337,19 +346,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -357,7 +379,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -387,7 +416,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -404,10 +433,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -428,6 +458,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -451,17 +497,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -486,7 +521,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -495,8 +530,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -509,6 +542,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -555,15 +599,26 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -614,22 +669,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -637,13 +681,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -667,24 +711,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
@@ -698,13 +735,18 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -712,11 +754,29 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -745,6 +805,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -757,12 +819,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -793,18 +863,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -815,6 +883,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -825,8 +895,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -841,6 +909,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -849,15 +921,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -872,6 +942,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -886,12 +962,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -902,11 +978,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,14 @@ FROM devilbox/php-fpm:5.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -28,6 +29,7 @@ RUN set -eux \
|
||||
libldap2-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -40,14 +42,39 @@ RUN set -eux \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -64,23 +91,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -107,7 +117,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install bcmath \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -115,7 +125,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install bz2 \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -123,7 +133,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install calendar \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -131,7 +141,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install dba \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -139,7 +149,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install enchant \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -147,30 +157,25 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install exif \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ftp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& docker-php-ext-install ftp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install gd \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -178,17 +183,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install gettext \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install gmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -206,12 +211,12 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||
&& docker-php-ext-install imap \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -219,7 +224,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install interbase \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -228,46 +233,28 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install intl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||
&& docker-php-ext-install ldap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mbstring \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -282,6 +269,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -319,15 +317,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mysql \
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install mysqli \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -345,27 +346,47 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install oci8 \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -388,17 +409,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pcntl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_dblib \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -406,17 +427,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_firebird \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
&& docker-php-ext-install pdo_mysql \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -424,7 +446,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pdo_pgsql \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -432,7 +454,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pgsql \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -447,6 +469,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -466,18 +504,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install pspell \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -496,7 +523,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install shmop \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -505,8 +532,8 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-install snmp \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -514,9 +541,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install soap \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -524,7 +549,18 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sockets \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -543,7 +579,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvmsg \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -551,7 +587,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvsem \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -559,7 +595,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install sysvshm \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -568,28 +604,39 @@ RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install tidy \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install wddx \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -610,7 +657,7 @@ RUN set -eux \
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||
&& docker-php-ext-install xmlrpc \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -618,7 +665,7 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install xsl \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -633,22 +680,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -656,13 +692,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -686,24 +722,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
@@ -717,13 +746,18 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -731,11 +765,29 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -764,6 +816,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -776,12 +830,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -812,18 +874,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -834,6 +894,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -844,8 +906,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -862,6 +922,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -870,15 +934,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -893,6 +955,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -907,12 +973,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -923,11 +989,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,15 @@ FROM devilbox/php-fpm:5.5-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -26,8 +28,10 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagickwand-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libmysqlclient-dev \
|
||||
libnghttp2-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
@@ -35,20 +39,44 @@ RUN set -eux \
|
||||
libpspell-dev \
|
||||
librabbitmq-dev \
|
||||
librdkafka-dev \
|
||||
librecode-dev \
|
||||
libsasl2-dev \
|
||||
libsnmp-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -65,23 +93,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -155,11 +166,16 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -176,7 +192,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -194,10 +210,32 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imagick --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -223,10 +261,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -236,21 +291,11 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -265,6 +310,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -302,14 +358,17 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -328,19 +387,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -348,7 +420,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -375,7 +454,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -392,10 +471,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -427,6 +507,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -450,25 +546,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -493,7 +570,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -502,8 +579,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -516,6 +591,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -562,15 +648,26 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -621,22 +718,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -644,13 +730,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -674,28 +760,23 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu52 \
|
||||
libjpeg62-turbo \
|
||||
libmagickwand-6.q16-2 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libmysqlclient18 \
|
||||
@@ -705,13 +786,18 @@ RUN set -eux \
|
||||
librabbitmq1 \
|
||||
librdkafka1 \
|
||||
librecode0 \
|
||||
libssl1.0.0 \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip2 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -719,11 +805,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -752,6 +867,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -764,12 +881,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -790,6 +915,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||
&& php -m | grep -oiE '^igbinary$' \
|
||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||
&& php -m | grep -oiE '^imagick$' \
|
||||
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||
&& php -m | grep -oiE '^imap$' \
|
||||
&& php-fpm -m | grep -oiE '^imap$' \
|
||||
&& php -m | grep -oiE '^interbase$' \
|
||||
@@ -800,18 +927,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -822,6 +947,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -832,8 +959,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -850,6 +975,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -858,15 +987,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -881,6 +1008,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -895,12 +1026,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -911,11 +1042,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,15 @@ FROM devilbox/php-fpm:5.6-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -27,6 +29,7 @@ RUN set -eux \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadbclient-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -43,16 +46,38 @@ RUN set -eux \
|
||||
libtidy-dev \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -69,23 +94,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -173,11 +181,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -194,7 +202,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -220,13 +228,24 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -252,10 +271,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -265,21 +301,11 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -294,6 +320,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -318,10 +355,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mongodb \
|
||||
&& pecl install mongodb-1.7.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongodb \
|
||||
&& true
|
||||
@@ -331,6 +368,8 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||
&& true
|
||||
@@ -338,8 +377,9 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -358,19 +398,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -378,7 +431,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -405,7 +465,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -422,10 +482,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -457,6 +518,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -480,25 +557,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis-4.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -510,6 +568,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -523,7 +589,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -532,8 +598,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -546,6 +610,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -592,15 +667,26 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid-1.0.5 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -651,21 +737,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -673,13 +749,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -703,24 +779,18 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu57 \
|
||||
@@ -744,6 +814,8 @@ RUN set -eux \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
snmp \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -751,11 +823,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -784,6 +885,8 @@ RUN set -eux \
|
||||
\
|
||||
&& php -m | grep -oiE '^amqp$' \
|
||||
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||
&& php -m | grep -oiE '^apc$' \
|
||||
&& php-fpm -m | grep -oiE '^apc$' \
|
||||
&& php -m | grep -oiE '^apcu$' \
|
||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||
&& php -m | grep -oiE '^bcmath$' \
|
||||
@@ -796,12 +899,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^ereg$' \
|
||||
&& php-fpm -m | grep -oiE '^ereg$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -834,18 +945,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mhash$' \
|
||||
&& php-fpm -m | grep -oiE '^mhash$' \
|
||||
&& php -m | grep -oiE '^mongo$' \
|
||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -856,6 +965,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -866,8 +977,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -884,6 +993,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -892,15 +1005,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -915,6 +1026,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -929,12 +1044,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -945,11 +1060,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,15 @@ FROM devilbox/php-fpm:7.0-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -26,7 +28,9 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadbclient-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -42,19 +46,44 @@ RUN set -eux \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -71,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -175,11 +187,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -196,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -222,13 +234,24 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -254,10 +277,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -266,14 +306,55 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf-1.6.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-4.0.5.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -285,23 +366,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -309,10 +379,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mongodb \
|
||||
&& pecl install mongodb-1.9.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongodb \
|
||||
&& true
|
||||
@@ -320,8 +390,9 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||
&& true
|
||||
|
||||
@@ -340,19 +411,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -360,7 +444,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -387,7 +478,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -404,10 +495,11 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
# Default: configure command
|
||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||
&& true
|
||||
|
||||
@@ -415,19 +507,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Generic
|
||||
@@ -467,15 +572,71 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install zstd \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -499,25 +660,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -529,6 +671,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -542,7 +692,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -551,8 +701,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -565,17 +713,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.3.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -587,6 +724,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -634,19 +782,36 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -668,6 +833,28 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xhprof --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xhprof \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xhprof \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -688,30 +875,20 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: yaml --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install yaml \
|
||||
&& pecl install yaml-2.0.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable yaml \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -719,13 +896,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -749,29 +926,25 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.0-5 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu57 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-3 \
|
||||
libmariadbclient18 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
@@ -783,14 +956,18 @@ RUN set -eux \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5 \
|
||||
libvips42 \
|
||||
libvpx4 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -798,11 +975,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -843,12 +1049,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -881,16 +1093,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -899,6 +1111,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -909,8 +1123,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -931,6 +1143,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -939,15 +1159,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -962,10 +1180,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -980,12 +1200,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xhprof$' \
|
||||
&& php-fpm -m | grep -oiE '^xhprof$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -996,11 +1222,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,15 @@ FROM devilbox/php-fpm:7.1-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -26,7 +28,9 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -42,19 +46,44 @@ RUN set -eux \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -71,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -175,11 +187,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -196,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -222,13 +234,24 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -247,16 +270,34 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: intl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -265,14 +306,55 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf-1.6.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-4.0.5.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -284,23 +366,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -308,10 +379,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mongodb \
|
||||
&& pecl install mongodb-1.11.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongodb \
|
||||
&& true
|
||||
@@ -339,19 +410,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -359,7 +443,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -386,7 +477,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -414,19 +505,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Generic
|
||||
@@ -466,15 +570,81 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -498,25 +668,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -528,6 +679,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -541,7 +700,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -550,8 +709,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -575,17 +732,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -597,12 +743,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.4.26 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -643,19 +800,36 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -667,13 +841,35 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-2.9.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xhprof --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xhprof \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xhprof \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -706,21 +902,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -728,13 +914,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -758,29 +944,25 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.1-6 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
@@ -792,15 +974,18 @@ RUN set -eux \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -808,11 +993,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -853,12 +1067,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -891,16 +1111,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -909,6 +1129,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -919,8 +1141,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -941,6 +1161,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -949,15 +1177,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -974,10 +1200,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -992,12 +1220,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xhprof$' \
|
||||
&& php-fpm -m | grep -oiE '^xhprof$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1008,11 +1242,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-base as builder
|
||||
|
||||
|
||||
@@ -6,14 +7,15 @@ FROM devilbox/php-fpm:7.2-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
@@ -26,7 +28,9 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -42,19 +46,44 @@ RUN set -eux \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -71,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -175,11 +187,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -196,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -222,13 +234,24 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -247,16 +270,34 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: intl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -265,6 +306,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -276,6 +346,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-4.0.5.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -287,23 +368,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -342,19 +412,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -362,7 +445,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -389,7 +479,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -417,19 +507,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -451,10 +554,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install pdo_sqlsrv \
|
||||
&& pecl install pdo_sqlsrv-5.8.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable pdo_sqlsrv \
|
||||
&& true
|
||||
@@ -470,23 +573,89 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: psr --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install psr \
|
||||
&& pecl install psr-1.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable psr \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.8.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout v4.1.1 \
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -502,25 +671,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -532,6 +682,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -545,7 +703,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -554,8 +712,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -579,17 +735,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -601,12 +746,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -646,20 +802,37 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -671,13 +844,35 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xhprof --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xhprof \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xhprof \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -710,21 +905,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -732,13 +917,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -762,29 +947,25 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.1-6 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
@@ -796,15 +977,18 @@ RUN set -eux \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvips42 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -812,11 +996,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -857,12 +1070,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -895,16 +1114,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -913,6 +1132,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -923,8 +1144,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -945,6 +1164,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -953,15 +1180,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -980,10 +1205,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -998,12 +1225,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xhprof$' \
|
||||
&& php-fpm -m | grep -oiE '^xhprof$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1014,11 +1247,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-base as builder
|
||||
|
||||
|
||||
@@ -6,17 +7,17 @@ FROM devilbox/php-fpm:7.3-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libfbclient2 \
|
||||
libfreetype6-dev \
|
||||
@@ -26,7 +27,10 @@ RUN set -eux \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -42,19 +46,44 @@ RUN set -eux \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -71,23 +100,6 @@ RUN set -eux \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -156,14 +168,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: enchant --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: exif --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -175,11 +179,11 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \
|
||||
&& docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -196,7 +200,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -222,13 +226,24 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -253,10 +268,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -265,6 +297,35 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -276,6 +337,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-4.0.5.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -287,23 +359,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached \
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -342,19 +403,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -362,7 +436,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -389,7 +470,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -417,19 +498,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -451,10 +545,10 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install pdo_sqlsrv \
|
||||
&& pecl install pdo_sqlsrv-5.9.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable pdo_sqlsrv \
|
||||
&& true
|
||||
@@ -479,14 +573,83 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv-5.9.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout v4.1.2 \
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -502,25 +665,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -532,6 +676,14 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: recode --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: shmop --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -545,7 +697,7 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
@@ -554,8 +706,6 @@ RUN set -eux \
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -579,17 +729,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ssh2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -601,12 +740,23 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --enable-zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip=/usr \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -646,20 +796,37 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: wddx --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -671,13 +838,35 @@ RUN set -eux \
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xhprof --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install xhprof \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& docker-php-ext-enable xhprof \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -710,21 +899,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -732,13 +911,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -762,29 +941,25 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libenchant1c2a \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
@@ -796,15 +971,18 @@ RUN set -eux \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -812,11 +990,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -857,12 +1064,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^fileinfo$' \
|
||||
@@ -895,16 +1106,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -913,6 +1124,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -923,8 +1136,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -945,6 +1156,14 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -953,15 +1172,13 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^recode$' \
|
||||
&& php-fpm -m | grep -oiE '^recode$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -980,10 +1197,12 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^solr$' \
|
||||
&& php -m | grep -oiE '^spl$' \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -998,12 +1217,18 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^wddx$' \
|
||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xhprof$' \
|
||||
&& php-fpm -m | grep -oiE '^xhprof$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -1014,11 +1239,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-base as builder
|
||||
|
||||
|
||||
@@ -6,16 +7,17 @@ FROM devilbox/php-fpm:7.4-base as builder
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
alien \
|
||||
firebird-dev \
|
||||
freetds-dev \
|
||||
ghostscript \
|
||||
libaio-dev \
|
||||
libbz2-dev \
|
||||
libc-ares-dev \
|
||||
libc-client-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libenchant-dev \
|
||||
libevent-dev \
|
||||
libfbclient2 \
|
||||
libffi-dev \
|
||||
@@ -24,8 +26,12 @@ RUN set -eux \
|
||||
libib-util \
|
||||
libicu-dev \
|
||||
libjpeg-dev \
|
||||
libkrb5-dev \
|
||||
libldap2-dev \
|
||||
liblz4-dev \
|
||||
liblzf-dev \
|
||||
libmagickwand-dev \
|
||||
libmariadb-dev \
|
||||
libmcrypt-dev \
|
||||
libmemcached-dev \
|
||||
libnghttp2-dev \
|
||||
@@ -40,18 +46,44 @@ RUN set -eux \
|
||||
libssh2-1-dev \
|
||||
libssl-dev \
|
||||
libtidy-dev \
|
||||
libvips-dev \
|
||||
libvips42 \
|
||||
libvpx-dev \
|
||||
libwebp-dev \
|
||||
libwebp6 \
|
||||
libxml2-dev \
|
||||
libxpm-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
libzip-dev \
|
||||
libzstd-dev \
|
||||
re2c \
|
||||
snmp \
|
||||
unixodbc-dev \
|
||||
uuid-dev \
|
||||
zlib1g-dev \
|
||||
# Build tools
|
||||
autoconf \
|
||||
bison \
|
||||
bisonc++ \
|
||||
ca-certificates \
|
||||
git
|
||||
curl \
|
||||
dpkg-dev \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
lemon \
|
||||
libc-client-dev \
|
||||
libc-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libssl-dev \
|
||||
make \
|
||||
patch \
|
||||
pkg-config \
|
||||
re2c \
|
||||
xz-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
@@ -136,14 +168,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: enchant --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: exif --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -155,28 +179,19 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: ffi --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/dstogov/php-ffi /tmp/ffi \
|
||||
&& cd /tmp/ffi \
|
||||
# Custom: Install command
|
||||
&& phpize \
|
||||
&& ./configure --with-ffi \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable ffi \
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ffi \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --enable-gd-jis-conv \
|
||||
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
@@ -193,7 +208,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: gmp --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
||||
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||
@@ -219,6 +234,29 @@ RUN set -eux \
|
||||
&& pecl install imagick \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable imagick \
|
||||
# Generic post-command
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: imap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||
&& true
|
||||
|
||||
|
||||
@@ -230,10 +268,27 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Custom extension
|
||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
||||
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||
&& tar xvfz ioncube.tar.gz \
|
||||
&& cd ioncube \
|
||||
&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||
&& cd ../ \
|
||||
&& rm -rf ioncube \
|
||||
&& rm -rf ioncube.tar.gz \
|
||||
\
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
@@ -242,9 +297,38 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lz4 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-lz4 /tmp/lz4 \
|
||||
&& cd /tmp/lz4 \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-lz4 --with-lz4-includedir=/usr \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lz4 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: lzf --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install lzf \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable lzf \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install mcrypt \
|
||||
@@ -253,6 +337,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-4.0.5.2 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -264,27 +359,12 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcache --------------------
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
||||
&& cd /tmp/memcached \
|
||||
# Custom: Branch
|
||||
&& git checkout master \
|
||||
# Custom: Install command
|
||||
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
|
||||
# Custom: Pecl command
|
||||
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
@@ -323,19 +403,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
@@ -343,7 +436,14 @@ RUN set -eux \
|
||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||
# Generic post-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -370,7 +470,7 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
@@ -398,19 +498,32 @@ RUN set -eux \
|
||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
\
|
||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& alien \
|
||||
-v \
|
||||
--target=$( dpkg --print-architecture ) \
|
||||
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.${ARCH}.rpm \
|
||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
\
|
||||
# Installation: Version specific
|
||||
@@ -430,6 +543,17 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install pdo_sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable pdo_sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -449,6 +573,75 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zstd --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/kjdev/php-ext-zstd /tmp/zstd \
|
||||
&& cd /tmp/zstd \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-zstd --with-libzstd \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable zstd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& if [ -f /usr/include/liblzf/lzf.h ]; then \
|
||||
ln -s /usr/include/liblzf/lzf.h /usr/include/; \
|
||||
fi \
|
||||
\
|
||||
# Installation: Generic
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/phpredis/phpredis /tmp/redis \
|
||||
&& cd /tmp/redis \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git tag | grep -E '^[.0-9]+$' | sort -V | tail -1) \
|
||||
# Custom: Install command
|
||||
&& REDIS_ARGS=""; \
|
||||
if php -m | grep -q "igbinary"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-igbinary"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lz4"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lz4 --with-liblz4=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "lzf"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-lzf --with-liblzf=/usr"; \
|
||||
fi; \
|
||||
if php -m | grep -q "msgpack"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-msgpack"; \
|
||||
fi; \
|
||||
if php -m | grep -q "zstd"; then \
|
||||
REDIS_ARGS="${REDIS_ARGS} --enable-redis-zstd"; \
|
||||
fi; \
|
||||
phpize \
|
||||
&& ./configure --enable-redis ${REDIS_ARGS} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
\
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install sqlsrv \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable sqlsrv \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -456,7 +649,13 @@ RUN set -eux \
|
||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||
&& cd /tmp/phalcon \
|
||||
# Custom: Branch
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags \
|
||||
| sort -V \
|
||||
| sed 's/^.*tags\///g' \
|
||||
| grep -E '^v[.0-9]+$' \
|
||||
| tail -1 \
|
||||
) \
|
||||
\
|
||||
# Custom: Install command
|
||||
&& cd build && ./install \
|
||||
# Enabling
|
||||
@@ -472,17 +671,6 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: redis --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install redis \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable redis \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
@@ -507,16 +695,15 @@ RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-configure snmp --with-snmp \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: soap --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||
&& true
|
||||
|
||||
@@ -551,12 +738,22 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: swoole --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install swoole \
|
||||
# Default: Pecl command
|
||||
&& pecl install swoole-4.8.12 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable swoole \
|
||||
&& true
|
||||
@@ -596,31 +793,70 @@ RUN set -eux \
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: GIT extension
|
||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
||||
&& cd /tmp/uploadprogress \
|
||||
# Default: Install command
|
||||
&& phpize \
|
||||
&& ./configure --enable-uploadprogress \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
# -------------------- Installing PHP Extension: uuid --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug \
|
||||
&& pecl install uuid \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uuid \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: vips --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install vips \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable vips \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-3.1.6 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xhprof --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xhprof \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xhprof \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xlswriter \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xlswriter \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
@@ -651,22 +887,11 @@ RUN set -eux \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: zip --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure zip --with-zip \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& true
|
||||
|
||||
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
&& find "$(php -r 'echo ini_get("extension_dir");')/" -type f -exec chmod +x {} \;
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
@@ -674,13 +899,13 @@ RUN set -eux \
|
||||
|
||||
# Shrink everything down
|
||||
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)
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-base as final
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -704,29 +929,26 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-mods"
|
||||
|
||||
|
||||
###
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ghostscript \
|
||||
libaio1 \
|
||||
libaspell15 \
|
||||
libenchant1c2a \
|
||||
libc-ares2 \
|
||||
libc-client2007e \
|
||||
libevent-2.1-7 \
|
||||
libfbclient2 \
|
||||
libffi6 \
|
||||
libffi7 \
|
||||
libfreetype6 \
|
||||
libicu63 \
|
||||
libicu67 \
|
||||
libjpeg62-turbo \
|
||||
liblz4-1 \
|
||||
liblzf1 \
|
||||
libmagickwand-6.q16-6 \
|
||||
libmariadbd19 \
|
||||
libmcrypt4 \
|
||||
libmemcachedutil2 \
|
||||
libnghttp2-14 \
|
||||
@@ -737,14 +959,17 @@ RUN set -eux \
|
||||
libssh2-1 \
|
||||
libsybdb5 \
|
||||
libtidy5deb1 \
|
||||
libvpx5 \
|
||||
libwebp-dev \
|
||||
libvips42 \
|
||||
libvpx6 \
|
||||
libwebp6 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
libyaml-0-2 \
|
||||
libzip4 \
|
||||
libzstd1 \
|
||||
snmp \
|
||||
unixodbc \
|
||||
uuid \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
@@ -752,11 +977,40 @@ RUN set -eux \
|
||||
|
||||
|
||||
###
|
||||
### Post Install
|
||||
### Copy artifacts from builder
|
||||
###
|
||||
ARG EXT_DIR
|
||||
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||
|
||||
|
||||
###
|
||||
### Post Install executions
|
||||
###
|
||||
RUN set -eux \
|
||||
# ---------- imagick ----------
|
||||
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||
\
|
||||
# ---------- oci8 ----------
|
||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||
&& ARCH="$(dpkg-architecture --query DEB_HOST_GNU_CPU)" \
|
||||
&& ORACLE_HREF="$( \
|
||||
curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/${ARCH}/ \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||
@@ -797,12 +1051,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^ctype$' \
|
||||
&& php -m | grep -oiE '^curl$' \
|
||||
&& php-fpm -m | grep -oiE '^curl$' \
|
||||
&& php -m | grep -oiE '^date$' \
|
||||
&& php-fpm -m | grep -oiE '^date$' \
|
||||
&& php -m | grep -oiE '^dba$' \
|
||||
&& php-fpm -m | grep -oiE '^dba$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^dom$' \
|
||||
&& php-fpm -m | grep -oiE '^dom$' \
|
||||
&& php -m | grep -oiE '^enchant$' \
|
||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^exif$' \
|
||||
&& php-fpm -m | grep -oiE '^exif$' \
|
||||
&& php -m | grep -oiE '^ffi$' \
|
||||
@@ -827,22 +1085,24 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||
&& php -m | grep -oiE '^imagick$' \
|
||||
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||
&& php -m | grep -oiE '^imap$' \
|
||||
&& php-fpm -m | grep -oiE '^imap$' \
|
||||
&& php -m | grep -oiE '^intl$' \
|
||||
&& php-fpm -m | grep -oiE '^intl$' \
|
||||
&& php -m | grep -oiE '^json$' \
|
||||
&& php-fpm -m | grep -oiE '^json$' \
|
||||
&& php -m | grep -oiE '^ldap$' \
|
||||
&& php-fpm -m | grep -oiE '^ldap$' \
|
||||
&& php -m | grep -oiE '^libxml$' \
|
||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||
&& php -m | grep -oiE '^mbstring$' \
|
||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||
&& php -m | grep -oiE '^lz4$' \
|
||||
&& php-fpm -m | grep -oiE '^lz4$' \
|
||||
&& php -m | grep -oiE '^lzf$' \
|
||||
&& php-fpm -m | grep -oiE '^lzf$' \
|
||||
&& php -m | grep -oiE '^mcrypt$' \
|
||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcache$' \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& php -m | grep -oiE '^msgpack$' \
|
||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||
&& php -m | grep -oiE '^memcached$' \
|
||||
&& php-fpm -m | grep -oiE '^memcached$' \
|
||||
&& php -m | grep -oiE '^mongodb$' \
|
||||
@@ -851,6 +1111,8 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^mysqli$' \
|
||||
&& php -m | grep -oiE '^mysqlnd$' \
|
||||
&& php-fpm -m | grep -oiE '^mysqlnd$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^oci8$' \
|
||||
@@ -861,8 +1123,6 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^openssl$' \
|
||||
&& php -m | grep -oiE '^pcntl$' \
|
||||
&& php-fpm -m | grep -oiE '^pcntl$' \
|
||||
&& php -m | grep -oiE '^pcre$' \
|
||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||
&& php -m | grep -oiE '^pdo$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||
@@ -877,10 +1137,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||
&& php -m | grep -oiE '^pdo_sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^pdo_sqlsrv$' \
|
||||
&& php -m | grep -oiE '^pgsql$' \
|
||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||
&& php -m | grep -oiE '^psr$' \
|
||||
&& php-fpm -m | grep -oiE '^psr$' \
|
||||
&& php -m | grep -oiE '^zstd$' \
|
||||
&& php-fpm -m | grep -oiE '^zstd$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^sqlite3$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlite3$' \
|
||||
&& php -m | grep -oiE '^sqlsrv$' \
|
||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||
&& php -m | grep -oiE '^phalcon$' \
|
||||
&& php-fpm -m | grep -oiE '^phalcon$' \
|
||||
&& php -m | grep -oiE '^phar$' \
|
||||
@@ -889,13 +1159,11 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^posix$' \
|
||||
&& php -m | grep -oiE '^pspell$' \
|
||||
&& php-fpm -m | grep -oiE '^pspell$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^redis$' \
|
||||
&& php-fpm -m | grep -oiE '^redis$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^rdkafka$' \
|
||||
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||
&& php -m | grep -oiE '^readline$' \
|
||||
&& php -m | grep -oiE '^reflection$' \
|
||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||
&& php -m | grep -oiE '^session$' \
|
||||
&& php-fpm -m | grep -oiE '^session$' \
|
||||
&& php -m | grep -oiE '^shmop$' \
|
||||
@@ -916,6 +1184,10 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^spl$' \
|
||||
&& php -m | grep -oiE '^ssh2$' \
|
||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^swoole$' \
|
||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||
&& php -m | grep -oiE '^sysvmsg$' \
|
||||
@@ -930,10 +1202,16 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||
&& php -m | grep -oiE '^uploadprogress$' \
|
||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||
&& php -m | grep -oiE '^uuid$' \
|
||||
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||
&& php -m | grep -oiE '^vips$' \
|
||||
&& php-fpm -m | grep -oiE '^vips$' \
|
||||
&& php -m | grep -oiE '^xdebug$' \
|
||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||
&& php -m | grep -oiE '^xml$' \
|
||||
&& php-fpm -m | grep -oiE '^xml$' \
|
||||
&& php -m | grep -oiE '^xhprof$' \
|
||||
&& php-fpm -m | grep -oiE '^xhprof$' \
|
||||
&& php -m | grep -oiE '^xlswriter$' \
|
||||
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||
&& php -m | grep -oiE '^xmlreader$' \
|
||||
&& php-fpm -m | grep -oiE '^xmlreader$' \
|
||||
&& php -m | grep -oiE '^xmlrpc$' \
|
||||
@@ -944,11 +1222,20 @@ RUN set -eux \
|
||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||
&& php -m | grep -oiE '^yaml$' \
|
||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||
&& php -m | grep -oiE '^zip$' \
|
||||
&& php-fpm -m | grep -oiE '^zip$' \
|
||||
&& php -m | grep -oiE '^zlib$' \
|
||||
&& php-fpm -m | grep -oiE '^zlib$' \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactivate PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
# Deactivate xhprof (might collide with Xdebug)
|
||||
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 \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-xhprof.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1196
Dockerfiles/mods/Dockerfile-8.1
Normal file
1196
Dockerfiles/mods/Dockerfile-8.1
Normal file
File diff suppressed because it is too large
Load Diff
1137
Dockerfiles/mods/Dockerfile-8.2
Normal file
1137
Dockerfiles/mods/Dockerfile-8.2
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.3-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.4-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.5-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:5.6-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.1-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.3-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:7.4-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -26,9 +27,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -36,16 +36,21 @@ RUN set -eux \
|
||||
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)
|
||||
|
||||
|
||||
###
|
||||
@@ -74,7 +79,6 @@ RUN set -eux \
|
||||
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
|
||||
|
||||
|
||||
###
|
||||
|
||||
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
@@ -0,0 +1,101 @@
|
||||
# vi: ft=dockerfile
|
||||
# Auto-generated via Ansible: edit ./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
|
||||
|
||||
|
||||
###
|
||||
### 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"]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user