mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 19:41:16 +00:00
Compare commits
537 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73734b4481 | ||
|
|
3610e5f602 | ||
|
|
a425b5fd82 | ||
|
|
e02e7781c7 | ||
|
|
b42b7789df | ||
|
|
70a19575bb | ||
|
|
e34a8a8792 | ||
|
|
7ed35f19a9 | ||
|
|
573d5fa2e2 | ||
|
|
17b98f785c | ||
|
|
46faa83583 | ||
|
|
a23cdcdfd0 | ||
|
|
b6883cf4be | ||
|
|
8334b38869 | ||
|
|
ed40a191df | ||
|
|
107b39f5a2 | ||
|
|
0b6187fe37 | ||
|
|
b9efb7b1c3 | ||
|
|
f9a5db2cee | ||
|
|
2471921a2a | ||
|
|
fd44d5a2ef | ||
|
|
e9852d26d8 | ||
|
|
465a0284c0 | ||
|
|
c906ff09e0 | ||
|
|
ee7b55fc0f | ||
|
|
cbc27ffffd | ||
|
|
f5f22904fb | ||
|
|
b5467210e1 | ||
|
|
b681725fa5 | ||
|
|
1b02bd11fe | ||
|
|
476a1dee47 | ||
|
|
8213301902 | ||
|
|
ca544c19d2 | ||
|
|
180edab57f | ||
|
|
a2b50e69fd | ||
|
|
b51e640932 | ||
|
|
d8eccbf21a | ||
|
|
4176a5dd70 | ||
|
|
83cc953e55 | ||
|
|
d0949e3fe9 | ||
|
|
ab8a549764 | ||
|
|
d26e6221c4 | ||
|
|
07267f20d0 | ||
|
|
0e4f51c82d | ||
|
|
c35c942bf8 | ||
|
|
a02163b6c1 | ||
|
|
35a3a9a486 | ||
|
|
b72f81edd9 | ||
|
|
a47265e482 | ||
|
|
880a6f17b8 | ||
|
|
b224ecfdd7 | ||
|
|
c17e49b849 | ||
|
|
9a981de73f | ||
|
|
beeff54815 | ||
|
|
6cb03a9890 | ||
|
|
0dc4bd6959 | ||
|
|
a8c3f2c655 | ||
|
|
2655813ab8 | ||
|
|
0011b2e6ed | ||
|
|
52c1a907f9 | ||
|
|
e19d955965 | ||
|
|
c0af9f91a6 | ||
|
|
5f8551e742 | ||
|
|
b774432a7a | ||
|
|
e856fe1da4 | ||
|
|
1ed1c7eb81 | ||
|
|
756b6bc0fe | ||
|
|
4e9969ef75 | ||
|
|
1b67f7b02d | ||
|
|
9fda4fd0a2 | ||
|
|
4858303a1b | ||
|
|
2e3115ef04 | ||
|
|
8989b52602 | ||
|
|
ee6b735f17 | ||
|
|
20b45a0b79 | ||
|
|
687969b59b | ||
|
|
111c8a412f | ||
|
|
1d27f22e3f | ||
|
|
4b8668623b | ||
|
|
7b7a680e0b | ||
|
|
49d9459df8 | ||
|
|
efad9eaa48 | ||
|
|
22231fc61c | ||
|
|
f971d8d4b8 | ||
|
|
5498275047 | ||
|
|
a6f9bd8219 | ||
|
|
ea47aa2ba5 | ||
|
|
5094da0ae6 | ||
|
|
38d4f0c222 | ||
|
|
853962c4e9 | ||
|
|
8d50798d54 | ||
|
|
b50a688add | ||
|
|
99bd1d2cdb | ||
|
|
ac368b8725 | ||
|
|
c815e9040c | ||
|
|
61ccae6fc1 | ||
|
|
f7699f9c84 | ||
|
|
1cab69c0ab | ||
|
|
2158817a05 | ||
|
|
29d34dcdb2 | ||
|
|
ff04507e50 | ||
|
|
a448549b82 | ||
|
|
e808575164 | ||
|
|
643e1a7478 | ||
|
|
f3758cec56 | ||
|
|
ec5d6734fa | ||
|
|
ab91e0794b | ||
|
|
b6f926cf8a | ||
|
|
1609e8ea61 | ||
|
|
389e0bad20 | ||
|
|
e48ceef4a6 | ||
|
|
b659089ff9 | ||
|
|
e8e92eceb7 | ||
|
|
14c25cf670 | ||
|
|
8679dbee6a | ||
|
|
6ccf44b5a9 | ||
|
|
2826053fc0 | ||
|
|
1eb30660a6 | ||
|
|
81ef92f91e | ||
|
|
663f716031 | ||
|
|
ea52cc0969 | ||
|
|
ee14a4d46e | ||
|
|
d894a2bff7 | ||
|
|
cdfca15613 | ||
|
|
d1061273b0 | ||
|
|
1c31dbe3bf | ||
|
|
7975126bdf | ||
|
|
ffaee357fd | ||
|
|
a0e7ae7131 | ||
|
|
7041e6ef0a | ||
|
|
176f48d063 | ||
|
|
dc15215156 | ||
|
|
7693a4ea3f | ||
|
|
4ac5a7ab10 | ||
|
|
2b60cd648d | ||
|
|
492d23b9f8 | ||
|
|
b852001495 | ||
|
|
5eb8ce8187 | ||
|
|
d1fd0addaa | ||
|
|
0aceceabda | ||
|
|
42933391b6 | ||
|
|
436babd549 | ||
|
|
abfeef2e5c | ||
|
|
896c8f6c80 | ||
|
|
7f71dd2493 | ||
|
|
8318b43d2f | ||
|
|
6a00f19e88 | ||
|
|
e97261bc87 | ||
|
|
06ac183215 | ||
|
|
0181f196f6 | ||
|
|
4e5da07e21 | ||
|
|
6c6470c181 | ||
|
|
80f03e7512 | ||
|
|
157945dada | ||
|
|
116aa387fb | ||
|
|
e33041ca55 | ||
|
|
2d489beb2c | ||
|
|
cb9437b4f3 | ||
|
|
9505770a8c | ||
|
|
919a6887a6 | ||
|
|
b352de6939 | ||
|
|
456447070a | ||
|
|
ac508caee4 | ||
|
|
6b4596688c | ||
|
|
98569594bf | ||
|
|
8b9dbdf36b | ||
|
|
fdc024fac3 | ||
|
|
f36d0818b0 | ||
|
|
361192deee | ||
|
|
b937b99641 | ||
|
|
a7b96c7cf5 | ||
|
|
45e25586e3 | ||
|
|
df59c7b7bc | ||
|
|
c18bac4387 | ||
|
|
0239ff0a78 | ||
|
|
02c8c9d6ec | ||
|
|
207b78df6f | ||
|
|
20c5b88e52 | ||
|
|
5585109fb8 | ||
|
|
2517c33bae | ||
|
|
b0c487ff28 | ||
|
|
e16fdce860 | ||
|
|
31489459ad | ||
|
|
64e290a359 | ||
|
|
e145f9cec8 | ||
|
|
40ac8e4ef0 | ||
|
|
1640850b75 | ||
|
|
42a0a4f7ac | ||
|
|
69689351c8 | ||
|
|
865f18a212 | ||
|
|
f0b758e5fc | ||
|
|
d3e642b5f6 | ||
|
|
928c712fa6 | ||
|
|
c818efe5e3 | ||
|
|
ec1a1bd79d | ||
|
|
184881a8c5 | ||
|
|
1782f24d03 | ||
|
|
4cee51dbf4 | ||
|
|
fbcd91f248 | ||
|
|
d2cb8ef2c3 | ||
|
|
f3e7f5d352 | ||
|
|
d3923eb359 | ||
|
|
9a24cfe917 | ||
|
|
0229adf7c1 | ||
|
|
c35262e9b8 | ||
|
|
17649294c2 | ||
|
|
2d428c264a | ||
|
|
72d34ca52f | ||
|
|
6fbbc9580f | ||
|
|
44cc0093ec | ||
|
|
881dd567c9 | ||
|
|
2184f1f9a0 | ||
|
|
e10f81915b | ||
|
|
9fbdc187d8 | ||
|
|
1261f3a700 | ||
|
|
015eaff5d0 | ||
|
|
b5c34feb7c | ||
|
|
61ee6b3bfb | ||
|
|
feb6f0fee8 | ||
|
|
40c3980b3e | ||
|
|
857900acc6 | ||
|
|
7aa26f96d0 | ||
|
|
70ab96876d | ||
|
|
666980dc1c | ||
|
|
b776a9110f | ||
|
|
d1ec52838a | ||
|
|
8d8c92657a | ||
|
|
7a2710ffc5 | ||
|
|
58751d8deb | ||
|
|
3d96f15958 | ||
|
|
c8c71fb115 | ||
|
|
e156582252 | ||
|
|
ae9d987cb9 | ||
|
|
7b68744404 | ||
|
|
c3ad81b808 | ||
|
|
9531a29533 | ||
|
|
ed3449af98 | ||
|
|
5a5bcb1644 | ||
|
|
b0d72726bf | ||
|
|
9f073247f8 | ||
|
|
49e3180891 | ||
|
|
b4df3bc119 | ||
|
|
5aeeb86210 | ||
|
|
0421750699 | ||
|
|
36ef04c0f6 | ||
|
|
b0c3afc0d4 | ||
|
|
5ddf4a044a | ||
|
|
32a7cee28c | ||
|
|
1b12438855 | ||
|
|
c40619c7c0 | ||
|
|
d97348f457 | ||
|
|
f86556c72d | ||
|
|
8e94d09e39 | ||
|
|
7df4f04a04 | ||
|
|
0c664d770e | ||
|
|
e087ed33cc | ||
|
|
2ac845ab74 | ||
|
|
6634169b3f | ||
|
|
f9113317fc | ||
|
|
518d0d908d | ||
|
|
58aa3c6abf | ||
|
|
8d89ed4b02 | ||
|
|
25e0e12fe9 | ||
|
|
15ff7ff2dc | ||
|
|
36a3016370 | ||
|
|
bf81b816c4 | ||
|
|
a6e27c1dcd | ||
|
|
712ad5c66a | ||
|
|
59c30b8f24 | ||
|
|
d903951329 | ||
|
|
89d71a694b | ||
|
|
1d3a03c389 | ||
|
|
bc526403dd | ||
|
|
282c019eb3 | ||
|
|
74030c5c91 | ||
|
|
6be20c28e6 | ||
|
|
28d7ab632e | ||
|
|
395e4d30b4 | ||
|
|
d93387f207 | ||
|
|
c5e3e7257f | ||
|
|
0f7ea87328 | ||
|
|
66b7586eae | ||
|
|
2d4c8647e1 | ||
|
|
f0bb67cbc2 | ||
|
|
1b312bce33 | ||
|
|
6aafdd7023 | ||
|
|
48380c5d98 | ||
|
|
5506d68f1f | ||
|
|
88aeca57aa | ||
|
|
ec8fc4eab6 | ||
|
|
f6015c766a | ||
|
|
f0c625d951 | ||
|
|
a0332b964e | ||
|
|
7c1ceabf97 | ||
|
|
9bc2f1ca31 | ||
|
|
e51d28fcbe | ||
|
|
a002d3aa19 | ||
|
|
114f1b597d | ||
|
|
0b37f92cbb | ||
|
|
6616f336cf | ||
|
|
30f18d858e | ||
|
|
abd10c104b | ||
|
|
9f18603b4d | ||
|
|
d328e8aa67 | ||
|
|
9bddaad387 | ||
|
|
3cdede3519 | ||
|
|
dc98c5cefe | ||
|
|
62c65d19e7 | ||
|
|
b0c7655aca | ||
|
|
6f93613c34 | ||
|
|
6f359ab366 | ||
|
|
add92d6102 | ||
|
|
cdb09fcbee | ||
|
|
6ecd75d59b | ||
|
|
04c051e72f | ||
|
|
d926629879 | ||
|
|
3ca7d92844 | ||
|
|
8864095f8b | ||
|
|
d8be1a89bb | ||
|
|
b15ae8fc84 | ||
|
|
f3669b1bed | ||
|
|
fb36b7151f | ||
|
|
e09e02a7b0 | ||
|
|
8f2a9524fe | ||
|
|
332d03010c | ||
|
|
d9b205f2f1 | ||
|
|
42df419376 | ||
|
|
4be4c2eded | ||
|
|
6a49ffce10 | ||
|
|
ca6b176620 | ||
|
|
7019b00e55 | ||
|
|
c40082e886 | ||
|
|
3f89c534e4 | ||
|
|
c65bd0653b | ||
|
|
89edcd20d8 | ||
|
|
fd0594e3c1 | ||
|
|
bef26e8c27 | ||
|
|
f60c0e8fea | ||
|
|
1fc03c7b0d | ||
|
|
a782cf22ab | ||
|
|
51808ccc1b | ||
|
|
6f901d4bc7 | ||
|
|
b721b3b5ae | ||
|
|
ebd7c5ec37 | ||
|
|
050322cf02 | ||
|
|
5227af8e4c | ||
|
|
9e247307ad | ||
|
|
b095b04ec3 | ||
|
|
5684fac8a2 | ||
|
|
eb6799ad29 | ||
|
|
1c53a0fd68 | ||
|
|
fabc29299c | ||
|
|
83b4cb6b43 | ||
|
|
dc438b0aad | ||
|
|
c8bd21ebbe | ||
|
|
b2476e3851 | ||
|
|
c06a3d2237 | ||
|
|
ce4f022c70 | ||
|
|
9c5326dc0f | ||
|
|
2701a524b9 | ||
|
|
acea0ac0fe | ||
|
|
3153b329f1 | ||
|
|
10285279c7 | ||
|
|
0a04342e46 | ||
|
|
dad684bfd1 | ||
|
|
9fabcf3b71 | ||
|
|
0669d92289 | ||
|
|
6d2053878a | ||
|
|
c3f46d3706 | ||
|
|
de9642c2b5 | ||
|
|
6fa341748b | ||
|
|
5f719f60ce | ||
|
|
ffc8df1906 | ||
|
|
186bf71519 | ||
|
|
422e559ee3 | ||
|
|
eb85e3e288 | ||
|
|
5ed5dd2503 | ||
|
|
1225d564a7 | ||
|
|
a4102e3d7f | ||
|
|
982dd44701 | ||
|
|
bc851cca0f | ||
|
|
ef5b2ed58c | ||
|
|
cbd4f58876 | ||
|
|
fd6550627d | ||
|
|
af150ba371 | ||
|
|
47800a7ede | ||
|
|
d977d941ac | ||
|
|
2ae551e5a5 | ||
|
|
37747d392a | ||
|
|
0a5aadd2a2 | ||
|
|
64c41f7786 | ||
|
|
8bef4c7167 | ||
|
|
58ecd35153 | ||
|
|
55a1333d58 | ||
|
|
fa1ec623d7 | ||
|
|
faa10b9512 | ||
|
|
fc6df6bdaf | ||
|
|
649f667f45 | ||
|
|
0cbd58141d | ||
|
|
965db7f0d5 | ||
|
|
172baf9743 | ||
|
|
fc5e5e21e5 | ||
|
|
529a33f1a0 | ||
|
|
cc77461311 | ||
|
|
f04a5ec693 | ||
|
|
90495fab70 | ||
|
|
f8f485b0bb | ||
|
|
3ad0330bca | ||
|
|
2587886b24 | ||
|
|
3ce6ed507b | ||
|
|
f05301572d | ||
|
|
40d76f355f | ||
|
|
9c1e49b814 | ||
|
|
c1aa814206 | ||
|
|
a382745a2f | ||
|
|
d9d6f2d157 | ||
|
|
9c82fb08c3 | ||
|
|
91733db9e9 | ||
|
|
41fec62672 | ||
|
|
3e9e00e0c2 | ||
|
|
d4a16ba3b3 | ||
|
|
fb7a3e8bff | ||
|
|
dc7336fa3d | ||
|
|
0750ec9339 | ||
|
|
c360bec703 | ||
|
|
1ec8a494e4 | ||
|
|
883a897420 | ||
|
|
7f018000be | ||
|
|
7f3a6f3e64 | ||
|
|
83124e8632 | ||
|
|
806b408878 | ||
|
|
3d15aea68b | ||
|
|
db7c4e6334 | ||
|
|
2c6e013fad | ||
|
|
b35f3a822c | ||
|
|
f20932ce74 | ||
|
|
78d39e57f0 | ||
|
|
6b666d029b | ||
|
|
85b743c822 | ||
|
|
2643b28775 | ||
|
|
bbe1b43474 | ||
|
|
83f57430e5 | ||
|
|
696faf598d | ||
|
|
a0a0738205 | ||
|
|
020d778fca | ||
|
|
cd7424d1f6 | ||
|
|
5ef91da97f | ||
|
|
f59dd5bf6c | ||
|
|
bc01b396a1 | ||
|
|
dd78ed0b71 | ||
|
|
ec7e1cb622 | ||
|
|
91741aaf7f | ||
|
|
87234a6f46 | ||
|
|
a6236b19c7 | ||
|
|
67017e494e | ||
|
|
31864f8335 | ||
|
|
7585081644 | ||
|
|
3e8b4856d1 | ||
|
|
46d1c48104 | ||
|
|
47d2d1f9f5 | ||
|
|
019c3b82d8 | ||
|
|
1817f84301 | ||
|
|
3fd1652455 | ||
|
|
e75b7cb54c | ||
|
|
d68b8dcff0 | ||
|
|
5bd9466995 | ||
|
|
2b53dcab7a | ||
|
|
d286467a6f | ||
|
|
d87857e598 | ||
|
|
a9c8d4fbbe | ||
|
|
be4492795b | ||
|
|
5a10077fe2 | ||
|
|
3075f2afca | ||
|
|
36355c3d60 | ||
|
|
80f8557962 | ||
|
|
3883103a41 | ||
|
|
687a660baa | ||
|
|
6f8f5cc1ea | ||
|
|
f602092471 | ||
|
|
bcbc8e2e45 | ||
|
|
4b21c70b8f | ||
|
|
b943b30b01 | ||
|
|
2df2b8c7eb | ||
|
|
2ab9995e99 | ||
|
|
1e9cb5bcb9 | ||
|
|
bdb61b9c00 | ||
|
|
47e221e210 | ||
|
|
173fd463d3 | ||
|
|
e4dd462ef2 | ||
|
|
4b40a0d932 | ||
|
|
1126319f3d | ||
|
|
56a5cfeb5e | ||
|
|
391502b9eb | ||
|
|
b1c8c8b107 | ||
|
|
81bdfb1026 | ||
|
|
f69a96e16f | ||
|
|
e3ddad4e50 | ||
|
|
dfc3481773 | ||
|
|
6baf6ace61 | ||
|
|
92aed9e7a8 | ||
|
|
e3e0d760e9 | ||
|
|
8b0fdc6cca | ||
|
|
554e979d0e | ||
|
|
ceabd15ee0 | ||
|
|
0e813e6070 | ||
|
|
04ad135df5 | ||
|
|
481d095b39 | ||
|
|
8e907edbdb | ||
|
|
36d9af44e9 | ||
|
|
09b60b78fb | ||
|
|
c57c1eab02 | ||
|
|
ff7b52a025 | ||
|
|
244605f9b5 | ||
|
|
926df09109 | ||
|
|
e10de3dc35 | ||
|
|
812eba69bc | ||
|
|
d1a541c298 | ||
|
|
362ed7b3c5 | ||
|
|
f1211dc7eb | ||
|
|
cf49904400 | ||
|
|
711e52e46c | ||
|
|
3faa0a8245 | ||
|
|
8482667c00 | ||
|
|
409cd5afc9 | ||
|
|
599fd786d7 | ||
|
|
90ecbd62a3 | ||
|
|
1201ee4135 | ||
|
|
a128aa33c0 | ||
|
|
847ea4e6a1 | ||
|
|
1be3fa70f2 | ||
|
|
eefda31e3e | ||
|
|
b1d4c97db4 | ||
|
|
6cd2ef4a1b | ||
|
|
622af7851a | ||
|
|
b2c1b8e453 | ||
|
|
4a1efb6b74 | ||
|
|
e843265575 |
2
.github/FUNDING.yml
vendored
Normal file
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
github: [cytopia]
|
||||
patreon: devilbox
|
||||
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 00:00 on Monday, Wednesday, and Friday
|
||||
schedule:
|
||||
- cron: '0 18 * * 1,3,5'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_master.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
is_scheduled: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: nightly
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Nightly: At 18:00 on Sunday, Tuesday, and Thursday
|
||||
schedule:
|
||||
- cron: '0 18 * * 0,2,4'
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params-nightly_tags.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: true
|
||||
can_deploy: true
|
||||
is_scheduled: true
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
298
.github/workflows/action.yml
vendored
Normal file
298
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: build
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Push or pull_request will be determined in jobs.configure.enabled
|
||||
push:
|
||||
pull_request:
|
||||
# Dispatch: allows for manual trigger via GH UI
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (1/8) Determine parameter settings
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
params:
|
||||
uses: ./.github/workflows/params.yml
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (2/8) Configure Build and Deploy Matrices
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
configure:
|
||||
needs: [params]
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||
with:
|
||||
enabled: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && (github.event.pull_request.user.login != 'cytopia')) }}
|
||||
can_deploy: ${{ (github.repository == 'devilbox/docker-php-fpm') && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release-')) }}
|
||||
is_scheduled: false
|
||||
versions: ${{ needs.params.outputs.versions }}
|
||||
refs: ${{ needs.params.outputs.refs }}
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (3/8) Build & Test base
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-base:
|
||||
needs:
|
||||
- configure
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
stage_prev: ''
|
||||
|
||||
test-base:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (4/8) Build & Test mods
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
stage_prev: base
|
||||
|
||||
test-mods:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (5/8) Build & Test prod
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
stage_prev: mods
|
||||
|
||||
test-prod:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (6/8) Build & Test work
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
build-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
run_tests: false
|
||||
upload_artifact: true
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
stage_prev: prod
|
||||
|
||||
test-work:
|
||||
needs:
|
||||
- configure
|
||||
- build-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||
with:
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (7/8) Push images
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
push-base:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-mods:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-prod:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
push-work:
|
||||
needs:
|
||||
- configure
|
||||
- test-base
|
||||
- test-prod
|
||||
- test-mods
|
||||
- test-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# (8/8) Push Manifests
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
manifest-base:
|
||||
needs:
|
||||
- configure
|
||||
- push-base
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: base
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-mods:
|
||||
needs:
|
||||
- configure
|
||||
- push-mods
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: mods
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-prod:
|
||||
needs:
|
||||
- configure
|
||||
- push-prod
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: prod
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
manifest-work:
|
||||
needs:
|
||||
- configure
|
||||
- push-work
|
||||
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||
with:
|
||||
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||
versions: ${{ needs.configure.outputs.versions }}
|
||||
stage: work
|
||||
secrets:
|
||||
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
52
.github/workflows/linting.yml
vendored
Normal file
52
.github/workflows/linting.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Job Name
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
name: lint
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# When to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
on:
|
||||
# Runs on Pull Requests
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# What to run
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
jobs:
|
||||
lint:
|
||||
name: "Lint"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# ------------------------------------------------------------
|
||||
# Setup repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Lint repository
|
||||
# ------------------------------------------------------------
|
||||
- name: Lint Files
|
||||
run: |
|
||||
make lint-files
|
||||
|
||||
- name: Lint Yaml
|
||||
run: |
|
||||
make lint-yaml
|
||||
|
||||
- name: Lint Changelog
|
||||
run: |
|
||||
make lint-changelog
|
||||
|
||||
- name: Diff generated Docker files
|
||||
run: |
|
||||
make gen-dockerfiles
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
69
.github/workflows/params-nightly_master.yml
vendored
Normal file
69
.github/workflows/params-nightly_master.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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: |
|
||||
echo "::set-output name=versions::$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
echo "::set-output name=refs::$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
69
.github/workflows/params-nightly_tags.yml
vendored
Normal file
69
.github/workflows/params-nightly_tags.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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: |
|
||||
echo "::set-output name=versions::$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
echo "::set-output name=refs::$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
69
.github/workflows/params.yml
vendored
Normal file
69
.github/workflows/params.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# 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: |
|
||||
echo "::set-output name=versions::$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||
|
||||
- name: "[Set-Output] jsonify REFS"
|
||||
id: set-refs
|
||||
run: |
|
||||
echo "::set-output name=refs::$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||
75
.gitignore
vendored
75
.gitignore
vendored
@@ -1,74 +1,3 @@
|
||||
######################################
|
||||
# CUSTOM
|
||||
######################################
|
||||
|
||||
build/ansible/*.retry
|
||||
|
||||
|
||||
|
||||
######################################
|
||||
# GENERIC
|
||||
######################################
|
||||
|
||||
###### std ######
|
||||
.lock
|
||||
*.log
|
||||
|
||||
###### patches/diffs ######
|
||||
*.patch
|
||||
*.diff
|
||||
*.orig
|
||||
*.rej
|
||||
|
||||
|
||||
######################################
|
||||
# Operating Systems
|
||||
######################################
|
||||
|
||||
###### OSX ######
|
||||
._*
|
||||
.DS*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
|
||||
###### Windows ######
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
$RECYCLE.BIN/
|
||||
*.lnk
|
||||
|
||||
|
||||
######################################
|
||||
# Editors
|
||||
######################################
|
||||
|
||||
###### Sublime ######
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
|
||||
###### Eclipse ######
|
||||
.classpath
|
||||
.buildpath
|
||||
.project
|
||||
.settings/
|
||||
|
||||
###### Netbeans ######
|
||||
nbproject/private/
|
||||
|
||||
###### Intellij IDE ######
|
||||
.idea/
|
||||
.idea_modules/
|
||||
|
||||
###### vim ######
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
###### TextMate ######
|
||||
.tm_properties
|
||||
*.tmproj
|
||||
|
||||
###### BBEdit ######
|
||||
*.bbprojectd
|
||||
*.bbproject
|
||||
Makefile.docker
|
||||
Makefile.lint
|
||||
|
||||
143
.travis.yml
143
.travis.yml
@@ -1,143 +0,0 @@
|
||||
---
|
||||
|
||||
###
|
||||
### Travis settings
|
||||
###
|
||||
sudo: required
|
||||
language: python
|
||||
services:
|
||||
- docker
|
||||
|
||||
|
||||
###
|
||||
### Build Matrix
|
||||
###
|
||||
env:
|
||||
global:
|
||||
- IMAGE: devilbox/php-fpm
|
||||
# travis encrypt DOCKER_USERNAME=user
|
||||
# travis encrypt DOCKER_PASSWORD=pass
|
||||
# Must be regenerated when repository name/owner changes
|
||||
# DOCKER_USERNAME
|
||||
- secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek="
|
||||
# DOCKER_PASSWORD
|
||||
- secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk="
|
||||
matrix:
|
||||
- PHP=5.2
|
||||
- PHP=5.3
|
||||
- PHP=5.4
|
||||
- PHP=5.5
|
||||
- PHP=5.6
|
||||
- PHP=7.0
|
||||
- PHP=7.1
|
||||
- PHP=7.2
|
||||
- PHP=7.3
|
||||
- PHP=7.4
|
||||
|
||||
|
||||
###
|
||||
### Install requirements
|
||||
###
|
||||
install:
|
||||
# Get newer docker version
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
|
||||
- docker version
|
||||
|
||||
# Disable services enabled by default
|
||||
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
||||
- sudo /etc/init.d/httpd stop || true
|
||||
- sudo /etc/init.d/memcached stop || true
|
||||
- sudo /etc/init.d/mongodb stop || true
|
||||
- sudo /etc/init.d/mysql stop || true
|
||||
- sudo /etc/init.d/nginx stop || true
|
||||
- sudo /etc/init.d/postgresql stop || true
|
||||
- sudo /etc/init.d/redis stop || true
|
||||
|
||||
- sudo service httpd stop || true
|
||||
- sudo service memcached stop || true
|
||||
- sudo service mongodb stop || true
|
||||
- sudo service mysql stop || true
|
||||
- sudo service nginx stop || true
|
||||
- sudo service postgresql stop || true
|
||||
- sudo service redis stop || true
|
||||
- netstat -tulpn
|
||||
|
||||
|
||||
###
|
||||
### Check generation changes, build and test
|
||||
###
|
||||
before_script:
|
||||
# Regenerate Dockerfiles and make sure nothing has changed (every stage)
|
||||
- pip install ansible
|
||||
- make generate
|
||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
# Build (multiple tries due to network outages)
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-base-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-mods-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-prod-${PHP//.}
|
||||
|
||||
- max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
|
||||
- make test-work-${PHP//.}
|
||||
|
||||
# Test if PHP modules have changed
|
||||
- ./build/gen-readme.sh "${PHP}"
|
||||
- git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
|
||||
###
|
||||
### Push to Dockerhub
|
||||
###
|
||||
script:
|
||||
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
||||
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin &&
|
||||
if [ "${TRAVIS_BRANCH}" == "master" ]; then
|
||||
echo "Pushing latest";
|
||||
docker push "${IMAGE}:${PHP}-base";
|
||||
docker push "${IMAGE}:${PHP}-mods";
|
||||
docker push "${IMAGE}:${PHP}-prod";
|
||||
docker push "${IMAGE}:${PHP}-work";
|
||||
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
|
||||
echo "Pushing branch ${TRAVIS_BRANCH}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
|
||||
docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
|
||||
elif [ -n "${TRAVIS_TAG}" ]; then
|
||||
echo "Pushing tag ${TRAVIS_TAG}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
|
||||
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
|
||||
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
|
||||
echo "Pushing cron tag ${MY_TAG}";
|
||||
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${MY_TAG}" &&
|
||||
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${MY_TAG}" &&
|
||||
docker push "${IMAGE}:${PHP}-base-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-mods-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-prod-${MY_TAG}";
|
||||
docker push "${IMAGE}:${PHP}-work-${MY_TAG}";
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on normal branches";
|
||||
fi
|
||||
else
|
||||
echo "Skipping push to dockerhub on PR";
|
||||
fi
|
||||
14
.yamllint
Normal file
14
.yamllint
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
# Use 'default' rules
|
||||
extends: default
|
||||
|
||||
# Overwrite above default rules
|
||||
rules:
|
||||
colons:
|
||||
max-spaces-before: 0
|
||||
max-spaces-after: 60
|
||||
comments:
|
||||
require-starting-space: false
|
||||
min-spaces-from-content: 1
|
||||
line-length: disable
|
||||
truthy: disable
|
||||
394
CHANGELOG.md
Normal file
394
CHANGELOG.md
Normal file
@@ -0,0 +1,394 @@
|
||||
# Changelog
|
||||
|
||||
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release 0.139
|
||||
|
||||
#### Added
|
||||
- (Re-)added mongodb command line client
|
||||
- (Re-)added postgresql command line client
|
||||
|
||||
### Changed
|
||||
- Speed up `xargs` commands by using multi-CPU
|
||||
- Use buildkit for building
|
||||
|
||||
|
||||
## Release 0.138
|
||||
|
||||
#### Added
|
||||
- Added arm64 support
|
||||
- Added `vips` module for PHP 8.0
|
||||
- Added `vips` module for PHP 8.1
|
||||
- Added `swoole` module for PHP 8.1
|
||||
|
||||
#### Changed
|
||||
- Separated nightly jobs
|
||||
|
||||
|
||||
## Release 0.137
|
||||
|
||||
#### Fixed
|
||||
- Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
|
||||
#### Changed
|
||||
- Ensured CI tests are platform agnostic (amd64 vs arm64)
|
||||
- Ensured CI pipeline will work for long-running jobs
|
||||
|
||||
#### Removed
|
||||
- Removed homebrew due to arm64 issues
|
||||
- Removed postgres cmd client and apt repositories due to arm64 issues
|
||||
- Removed mongodb cmd client and apt repositories due to arm64 issues
|
||||
- Removed Ansible due to arm64 issues
|
||||
|
||||
|
||||
## Release 0.136
|
||||
|
||||
#### Fixed
|
||||
- Fixed `mongodb-org-shell` and `mongodb-org-tools` install
|
||||
|
||||
#### Added
|
||||
- Re-added `mongodb` for PHP 5.3
|
||||
|
||||
#### Changed
|
||||
- Switch PHP 5.4 base image to [devilbox/php-fpm-5.4](https://github.com/devilbox/docker-php-fpm-5.4) for potential arm64 support
|
||||
- Switch PHP 5.5 base image to [devilbox/php-fpm-5.5](https://github.com/devilbox/docker-php-fpm-5.5) for potential arm64 support
|
||||
- Changed base image back to Debian Jessie for PHP 5.2 and PHP 5.3
|
||||
|
||||
|
||||
## Release 0.135
|
||||
|
||||
#### Fixed
|
||||
- Fixed cloning of gitflow
|
||||
- Fixed pidof issue on QUEMU by replacing it with pgrep [#854](https://github.com/cytopia/devilbox/issues/854)
|
||||
|
||||
#### Changed
|
||||
- Changed PHP 5.2 and PHP 5.3 base images to Debian stretch
|
||||
- Removed photoncms binaries (their GitHub organization went private)
|
||||
- Removed `mongodb` extension from PHP 5.3 due to build errors
|
||||
- Removed `ioncube` extension for PHP 5.2, PHP 5.3 and PHP 5.4 (arm64 only supported from PHP 5.5 onwards)
|
||||
- Removed `codeception` from PHP 5.3
|
||||
|
||||
|
||||
## Release 0.134
|
||||
|
||||
#### Changed
|
||||
- Added extension `xdebug` to PHP 8.2
|
||||
|
||||
|
||||
## Release 0.133
|
||||
|
||||
#### Added
|
||||
- Added PHP 8.2: https://github.com/devilbox/docker-php-fpm-8.2
|
||||
|
||||
|
||||
## Release 0.132
|
||||
|
||||
#### Fixed
|
||||
- Fixed `nvm` PATH priority [#846](https://github.com/cytopia/devilbox/issues/846)
|
||||
|
||||
#### Added
|
||||
- added extension `sqlsrv` to php 8.1
|
||||
- added extension `pdo_sqlsrv` to php 8.1
|
||||
|
||||
#### Changed
|
||||
- Changed postfix hostname to `localhost` instead of GitHub runners long name
|
||||
|
||||
|
||||
## Release 0.131
|
||||
|
||||
#### Added
|
||||
- Added binary `sqlite3` to all PHP images [#856](https://github.com/cytopia/devilbox/issues/856)
|
||||
- Added binary `laravel` to PHP 8.0 and PHP 8.1 [#823](https://github.com/cytopia/devilbox/issues/823)
|
||||
- Added AVIF support in GD for PHP 8.1 [#834](https://github.com/cytopia/devilbox/issues/834)
|
||||
- Added extension `amqp` to PHP 8.0 and PHP 8.1 [#826](https://github.com/cytopia/devilbox/issues/826)
|
||||
- Added extension `uploadprogress` to PHP 8.0 and PHP 8.1 [#158](https://github.com/devilbox/docker-php-fpm/pull/158)
|
||||
- Added extension `imagick` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `rdkafka` to PHP 8.0 and PHP 8.1
|
||||
- Added extension `xlswriter` to PHP 8.1
|
||||
- Added extension `pdo_dblib` to PHP 8.1
|
||||
- Added extension `uuid` to all PHP versions (except 5.2)
|
||||
|
||||
#### Changed
|
||||
- Updated `php-cs-fixer` to latest version [#219](https://github.com/devilbox/docker-php-fpm/pull/219)
|
||||
|
||||
|
||||
## Release 0.130
|
||||
|
||||
#### Fixed
|
||||
- Fixed correct keys for `apt`
|
||||
|
||||
#### Added
|
||||
- Added integration checks for `apt update`
|
||||
|
||||
|
||||
## Release 0.129
|
||||
|
||||
#### Fixed
|
||||
- Pinned module: `uploadprogress`
|
||||
- Pinned module: `mongodb`
|
||||
- Pinned lib: `libenchant`
|
||||
- Pinned lib: `libicu`
|
||||
- Pinned lib: `libvpx`
|
||||
- Pinned PHP 8.0: https://github.com/devilbox/docker-php-fpm-8.0/pull/16
|
||||
- Pinned PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1/pull/9
|
||||
- Fixed `pgsql` apt key
|
||||
- Fixed `deployer` download on cert issues
|
||||
- Fixed `phpmd` download on cert issues
|
||||
- Fixed `phpunit` download on cert issues
|
||||
- Fixed `php-cs-fixer` download on cert issues
|
||||
- Fixed building `sockets` on PHP 8.0 and PHP 8.1
|
||||
- Fixed building `ffi` on PHP 7.4
|
||||
|
||||
#### Changed
|
||||
- Removed `mcrypt` from PHP 8.1 as it is not yet supported
|
||||
- Removed `enchant` from PHP 7.3 and PHP 7.4 as libenchant1 is not available via apt
|
||||
- Updated PHP 8.0 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.0/pull/17
|
||||
- Updated PHP 8.1 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.1/pull/10
|
||||
- Updated PostgreSQL repos to Bullseye for PHP >= 7.3
|
||||
- Updated `pip` to use Python3 for PHP >= 7.3
|
||||
|
||||
|
||||
## Release 0.128
|
||||
|
||||
#### Added
|
||||
- Adding `pdo_sqlsrv` to more PHP versions
|
||||
|
||||
|
||||
## Release 0.127
|
||||
|
||||
#### Changed
|
||||
- Adding `swoole` to more PHP 8.0
|
||||
|
||||
|
||||
## Release 0.126
|
||||
|
||||
#### Changed
|
||||
- Added Homebrew for all versions
|
||||
|
||||
|
||||
## Release 0.125
|
||||
|
||||
#### Changed
|
||||
- Re-added `opcache` for PHP 8.1
|
||||
- Pin `ansible` version for all work images
|
||||
- Pin `wp-cli` version for PHP 5.4 and 5.5
|
||||
|
||||
|
||||
## Release 0.124
|
||||
|
||||
#### Fixed
|
||||
- Fixed `pdo_sqlsrv` version for PHP 7.2
|
||||
- Fixed `sqlsrv` version for PHP 7.2
|
||||
- Fixed `swoole` version for PHP 7.1
|
||||
- Fixed pip installation
|
||||
|
||||
#### Changed
|
||||
- Removed `opcache` for PHP 8.1
|
||||
- Removed `xlswriter` for PHP 8.1
|
||||
- Removed `linuxbrew` for all versions
|
||||
- [#201](https://github.com/devilbox/docker-php-fpm/issues/201) Deactivated `psr` and `phalcon` by default
|
||||
- Removed `drush9` from PHP 7.0 and 7.1
|
||||
- Removed `drupalconsole` from PHP 7.0 and 7.1
|
||||
|
||||
|
||||
## Release 0.123
|
||||
|
||||
#### Fixed
|
||||
- Fixex `redis` module compilation for PHP 8.1
|
||||
- Fixed PHP Xdebug v3 defaults to:
|
||||
```ini
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
```
|
||||
|
||||
#### Changed
|
||||
- Removed `pdo_dblib` from PHP 8.1 due to errors
|
||||
|
||||
|
||||
## Release 0.122
|
||||
|
||||
#### Added
|
||||
- Added `apcu`, `blackfire`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.0
|
||||
- Added `apcu`, `igbinary`, `imap`, `mcrypt`, `memcache`, `msgpack`, `oauth`, `psr`, `solr`, `xlswriter`, `yaml` to PHP 8.1
|
||||
|
||||
#### Changed
|
||||
- Migrate from Travis CI to GitHub Actions
|
||||
|
||||
|
||||
## Release 0.121
|
||||
|
||||
#### Fixed
|
||||
- Fixed `msgpack` install for PHP 7.0 - 7.4
|
||||
|
||||
#### Changed
|
||||
- Compile `redis` extension with `msgpack` and `igbinary`
|
||||
|
||||
|
||||
## Release 0.120
|
||||
|
||||
#### Fixed
|
||||
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||
|
||||
|
||||
## Release 0.119
|
||||
|
||||
#### Fixed
|
||||
- Fixed `drupal` (drupal console launcher) for PHP 5.5, 5.6, 7.0 and 7.1
|
||||
- Fixed `zsh` install for PHP 5.6 and 7.0
|
||||
|
||||
|
||||
## Release 0.118
|
||||
|
||||
#### Fixed
|
||||
- Fixed `mdl` rubygem
|
||||
|
||||
#### Added
|
||||
- [#182](https://github.com/devilbox/docker-php-fpm/issues/182) Added `ioncube` to PHP 7.4
|
||||
- Added `sqlsrv` to PHP 7.4
|
||||
|
||||
#### Changed
|
||||
- Updated xdebug to latest possible version
|
||||
|
||||
|
||||
## Release 0.117
|
||||
|
||||
#### Fixed
|
||||
- [#755](https://github.com/cytopia/devilbox/issues/755) Add .composer/vendir/bin to $PATH variable
|
||||
|
||||
#### Added
|
||||
- [#692](https://github.com/cytopia/devilbox/issues/692) Add custom supervisor config mountpoint
|
||||
|
||||
|
||||
## Release 0.116
|
||||
|
||||
#### Fixed
|
||||
- [#749](https://github.com/cytopia/devilbox/issues/749) Fix to disable PHP modules without trailing `*.so` extension
|
||||
|
||||
|
||||
## Release 0.115
|
||||
|
||||
#### Fixed
|
||||
- [#703](https://github.com/cytopia/devilbox/issues/703) Don't fail on uid/gid change
|
||||
|
||||
|
||||
## Release 0.114
|
||||
|
||||
#### Fixed
|
||||
- Use latest PHP 8.0 image
|
||||
- Disabled gd-jis: https://bugs.php.net/bug.php?id=73582
|
||||
|
||||
#### Added
|
||||
- Add PHP 8.1
|
||||
- PHP module mongodb is added to PHP 8.0
|
||||
|
||||
#### Changed
|
||||
- Composer is updated to v2 (/usr/local/bin/composer)
|
||||
- Composer is available as v1 and v2 (/usr/local/bin/composer-[12])
|
||||
|
||||
|
||||
## Release 0.113
|
||||
|
||||
#### Fixed
|
||||
- Fixes nightly build pipeline
|
||||
|
||||
|
||||
## Release 0.112
|
||||
|
||||
#### Fixed
|
||||
- Fixes [166](https://github.com/devilbox/docker-php-fpm/issues/166) Missing `locale-gen` binary
|
||||
|
||||
#### Added
|
||||
- Added vips extension
|
||||
- Added xlswriter extension
|
||||
|
||||
|
||||
## Release 0.111
|
||||
|
||||
#### Added
|
||||
- Added xdebug for PHP 8.0
|
||||
|
||||
|
||||
## Release 0.110
|
||||
|
||||
#### Fixed
|
||||
- [169](https://github.com/devilbox/docker-php-fpm/issues/169) Fixes download for drupal console
|
||||
- Fixes laravel installer for PHP 7.2
|
||||
|
||||
|
||||
## Release 0.109
|
||||
|
||||
#### Fixed
|
||||
- Fixed absolute paths in tests
|
||||
|
||||
|
||||
## Release 0.108
|
||||
|
||||
#### Added
|
||||
- Added ghostscript
|
||||
- Added gsfonts
|
||||
- Added imagick PDF support (via ghostscript)
|
||||
- Added mupdf and mupdf-tools
|
||||
|
||||
#### Fixed
|
||||
- Fixes Ansible installation
|
||||
- Fixes MongoDB for PHP 5.6
|
||||
- Fixes Redis for PHP 8.0
|
||||
- Fixes policy.xml for Imagick
|
||||
|
||||
#### Changed
|
||||
- Stricter version check for installed tools
|
||||
|
||||
|
||||
## Release 0.107
|
||||
|
||||
#### Fixed
|
||||
- Fixes login to Dockerhub for CI jobs
|
||||
- Fixes imagick segfault by setting its threads to 1
|
||||
|
||||
#### Added
|
||||
- Re-added imap for PHP 7.4
|
||||
- Adding `certbot` binary
|
||||
|
||||
|
||||
## Release 0.106
|
||||
|
||||
#### Fixed
|
||||
- [#153](https://github.com/devilbox/docker-php-fpm/pull/153) Use numeric order for startup files
|
||||
- Fix build of PHP-FPM 7.4 snmp module
|
||||
- Disable PHP-FPM 8.0 uploadprogress module due to startup warnings
|
||||
|
||||
|
||||
## Release 0.105
|
||||
|
||||
#### Fixed
|
||||
- Fix pdo_sqlsrv install for PHP 7.1
|
||||
- Fix sqlsrv install for PHP 7.1
|
||||
- Fix composer memory issues during install
|
||||
|
||||
#### Added
|
||||
- `phalcon` binary for PHP 7.3 and 7.4
|
||||
|
||||
|
||||
## Release 0.104
|
||||
|
||||
#### Fixed
|
||||
- Fix xdebug install for PHP 7.0
|
||||
|
||||
|
||||
## Release 0.103
|
||||
|
||||
#### Added
|
||||
- Add PHP [yaml](https://pecl.php.net/package/yaml) module
|
||||
|
||||
|
||||
## Release 0.102
|
||||
|
||||
#### Added
|
||||
- [#144](https://github.com/devilbox/docker-php-fpm/issues/144) Added CHANGELOG
|
||||
|
||||
#### Changed
|
||||
- [#123](https://github.com/devilbox/docker-php-fpm/issues/123) Added Dart Sass and removed Ruby Sass
|
||||
- Replace [scss-lint](https://github.com/sds/scss-lint) with [stylelint](https://github.com/stylelint/stylelint)
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.4-fpm
|
||||
FROM devilbox/php-fpm-5.4
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM php:5.5-fpm
|
||||
FROM devilbox/php-fpm-5.5
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.6 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.6-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.6-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.2-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,12 +6,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.3-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-7.4
|
||||
FROM php:7.4-fpm
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.4-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -27,7 +35,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -35,16 +43,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -66,7 +76,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -92,4 +102,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
106
Dockerfiles/base/Dockerfile-8.0
Normal file
106
Dockerfiles/base/Dockerfile-8.0
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.0
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.0"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
106
Dockerfiles/base/Dockerfile-8.1
Normal file
106
Dockerfiles/base/Dockerfile-8.1
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.1
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.1"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
106
Dockerfiles/base/Dockerfile-8.2
Normal file
106
Dockerfiles/base/Dockerfile-8.2
Normal file
@@ -0,0 +1,106 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
FROM devilbox/php-fpm-8.2
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-base"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV MY_USER="devilbox" \
|
||||
MY_GROUP="devilbox" \
|
||||
MY_UID="1000" \
|
||||
MY_GID="1000" \
|
||||
PHP_VERSION="8.2"
|
||||
|
||||
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
&& mkdir -p /var/lib/php/wsdlcache \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/session \
|
||||
&& chown -R devilbox:devilbox /var/lib/php/wsdlcache
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -60,10 +60,18 @@ set_uid() {
|
||||
fi
|
||||
# Change uid and fix homedir permissions
|
||||
log "info" "Changing user '${username}' uid to: ${uid}" "${debug}"
|
||||
if ! run "usermod -u ${uid} ${username} 2>/dev/null" "${debug}"; then
|
||||
run "usermod -u ${uid} ${username}" "${debug}"
|
||||
run "chown -R ${username} ${homedir}" "${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}"
|
||||
if ! run "groupmod -g ${gid} ${groupname} 2>/dev/null" "${debug}"; then
|
||||
run "groupmod -g ${gid} ${groupname}" "${debug}"
|
||||
run "chown -R :${groupname} ${homedir}" "${debug}"
|
||||
fi
|
||||
run "chown -R :${groupname} ${homedir} 2>/dev/null || true" "${debug}"
|
||||
run "chown -R :${groupname} /var/lib/php/session" "${debug}"
|
||||
run "chown -R :${groupname} /var/lib/php/wsdlcache" "${debug}"
|
||||
if [ -f "/var/spool/mail/devilbox" ]; then
|
||||
run "chown -R :${groupname} /var/spool/mail/devilbox" "${debug}"
|
||||
fi
|
||||
if [ -d "/etc/supervisor/custom.d" ]; then
|
||||
run "chown -R :${groupname} /etc/supervisor/custom.d" "${debug}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -p pipefail
|
||||
set -o pipefail
|
||||
|
||||
|
||||
###
|
||||
@@ -52,4 +52,4 @@ set_gid "NEW_GID" "${MY_GROUP}" "/home/${MY_USER}" "${DEBUG_LEVEL}"
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting $( php-fpm -v 2>&1 | head -1 )" "${DEBUG_LEVEL}"
|
||||
exec /usr/local/sbin/php-fpm
|
||||
exec "${@}"
|
||||
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
134
Dockerfiles/base/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
@@ -43,7 +43,6 @@ 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
|
||||
|
||||
@@ -43,7 +43,6 @@ 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
|
||||
|
||||
@@ -43,7 +43,6 @@ html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = Off
|
||||
xdebug.profiler_enable = Off
|
||||
xdebug.remote_enable = Off
|
||||
xdebug.remote_autostart = Off
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.0.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.0.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.0-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.1.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.1-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
48
Dockerfiles/base/data/php-ini.d/php-8.2.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.2-base
|
||||
; ############################################################
|
||||
|
||||
; Each PHP flavour (base, mods, prod, work) might have its own php.ini.
|
||||
; If none is present, the one from the previous flavour is inherited.
|
||||
|
||||
|
||||
[PHP]
|
||||
|
||||
; Memory
|
||||
; Note: "memory_limit" should be larger than "post_max_size"
|
||||
memory_limit = 512M
|
||||
|
||||
|
||||
; Timeouts
|
||||
max_execution_time = 120
|
||||
max_input_time = 120
|
||||
|
||||
|
||||
; Uploads
|
||||
; Note: "post_max_size" should be greater than "upload_max_filesize"
|
||||
post_max_size = 72M
|
||||
upload_max_filesize = 64M
|
||||
max_file_uploads = 20
|
||||
|
||||
|
||||
; Vars
|
||||
variables_order = EGPCS
|
||||
max_input_vars = 8000
|
||||
max_input_nesting_level = 64
|
||||
|
||||
|
||||
; Error reporting
|
||||
; Note: error_log is dynamic and handled during start to set appropriate setting
|
||||
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
|
||||
xmlrpc_errors = Off
|
||||
report_memleaks = On
|
||||
display_errors = Off
|
||||
display_startup_errors = Off
|
||||
log_errors = On
|
||||
html_errors = Off
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
@@ -1,23 +1,13 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:5.2-base
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
FROM devilbox/php-fpm:5.2-base as builder
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
### Install
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-mods" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BUILD_DEPS \
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
@@ -35,32 +25,578 @@ ENV BUILD_DEPS \
|
||||
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 \
|
||||
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/*
|
||||
|
||||
ENV RUN_DEPS \
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Install and enable PHP modules
|
||||
###
|
||||
# Enable ffi if it exists
|
||||
RUN set -eux \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
# -------------------- Installing PHP Extension: amqp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install amqp-1.6.1 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: bcmath --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: bz2 --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: calendar --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: dba --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: enchant --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& echo "/usr" | pecl install enchant \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable enchant \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: exif --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: fileinfo --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install fileinfo \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable fileinfo \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gd --------------------
|
||||
RUN set -eux \
|
||||
# Version specific pre-command
|
||||
&& 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-native-ttf \
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: gettext --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: igbinary --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install igbinary-2.0.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable igbinary \
|
||||
&& 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
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: interbase --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: intl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install intl \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable intl \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: ldap --------------------
|
||||
RUN set -eux \
|
||||
# Generic pre-command
|
||||
&& 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 -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||
&& 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: 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: memcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcache-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: memcached --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install memcached-2.1.0 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: mongo --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& yes yes | pecl install mongo-1.5.8 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable mongo \
|
||||
&& 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
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install oauth-1.2.3 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable oauth \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: opcache --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Custom: Pecl command
|
||||
&& pecl install zendopcache \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable opcache \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pcntl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& 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/$(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 \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pdo_firebird --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||
&& 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
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: phar --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install phar \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable phar \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: pspell --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
&& 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
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: snmp --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: soap --------------------
|
||||
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
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sockets --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvsem --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: sysvshm --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: tidy --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: Built-in extension
|
||||
# Installation
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install uploadprogress-1.1.4 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& 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 -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Version specific
|
||||
# Type: PECL extension
|
||||
# Default: Pecl command
|
||||
&& pecl install xdebug-2.2.7 \
|
||||
# Enabling
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xmlrpc --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
# Custom: configure command
|
||||
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||
&& true
|
||||
|
||||
|
||||
# -------------------- Installing PHP Extension: xsl --------------------
|
||||
RUN set -eux \
|
||||
# Installation: Generic
|
||||
# Type: Built-in extension
|
||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& 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");')"/*
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
&& mkdir -p /usr/lib/oracle/
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (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.
|
||||
FROM devilbox/php-fpm:5.2-base as final
|
||||
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"="5.2-mods"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 \
|
||||
@@ -71,307 +607,35 @@ ENV RUN_DEPS \
|
||||
libsybdb5 \
|
||||
libtidy-0.99-0 \
|
||||
libvpx1 \
|
||||
libwebp5 \
|
||||
libxpm4 \
|
||||
libxslt1.1 \
|
||||
snmp \
|
||||
ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
${BUILD_DEPS} \
|
||||
\
|
||||
\
|
||||
# ---- Installing PHP Extension: ioncube ----
|
||||
&& 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 \
|
||||
\
|
||||
&& (rm -rf /usr/local/lib/php/test/ioncube || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/ioncube || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: amqp ----
|
||||
&& pecl install amqp-1.4.0 \
|
||||
&& docker-php-ext-enable amqp \
|
||||
&& (rm -rf /usr/local/lib/php/test/amqp || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/amqp || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: bcmath ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||
&& (rm -rf /usr/local/lib/php/test/bcmath || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/bcmath || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: bz2 ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||
&& (rm -rf /usr/local/lib/php/test/bz2 || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/bz2 || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: calendar ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||
&& (rm -rf /usr/local/lib/php/test/calendar || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/calendar || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: dba ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||
&& (rm -rf /usr/local/lib/php/test/dba || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/dba || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: enchant ----
|
||||
&& echo "/usr" | pecl install enchant \
|
||||
&& docker-php-ext-enable enchant \
|
||||
&& (rm -rf /usr/local/lib/php/test/enchant || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/enchant || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: exif ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||
&& (rm -rf /usr/local/lib/php/test/exif || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/exif || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: fileinfo ----
|
||||
&& pecl install fileinfo \
|
||||
&& docker-php-ext-enable fileinfo \
|
||||
&& (rm -rf /usr/local/lib/php/test/fileinfo || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/fileinfo || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: ftp ----
|
||||
&& /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
||||
&& (rm -rf /usr/local/lib/php/test/ftp || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/ftp || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: gd ----
|
||||
&& 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/ && \
|
||||
mkdir /usr/include/freetype2/freetype && \
|
||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||
\
|
||||
&& /usr/local/bin/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 \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||
&& (rm -rf /usr/local/lib/php/test/gd || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/gd || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: gettext ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||
&& (rm -rf /usr/local/lib/php/test/gettext || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/gettext || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: igbinary ----
|
||||
&& pecl install igbinary-2.0.7 \
|
||||
&& docker-php-ext-enable igbinary \
|
||||
&& (rm -rf /usr/local/lib/php/test/igbinary || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/igbinary || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: imap ----
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
||||
&& /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||
&& (rm -rf /usr/local/lib/php/test/imap || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/imap || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: interbase ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||
&& (rm -rf /usr/local/lib/php/test/interbase || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/interbase || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: intl ----
|
||||
&& pecl install intl \
|
||||
&& docker-php-ext-enable intl \
|
||||
&& (rm -rf /usr/local/lib/php/test/intl || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/intl || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: ldap ----
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
||||
&& /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||
&& (rm -rf /usr/local/lib/php/test/ldap || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/ldap || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: mcrypt ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||
&& (rm -rf /usr/local/lib/php/test/mcrypt || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/mcrypt || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: msgpack ----
|
||||
&& pecl install msgpack-0.5.7 \
|
||||
&& docker-php-ext-enable msgpack \
|
||||
&& (rm -rf /usr/local/lib/php/test/msgpack || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/msgpack || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: memcache ----
|
||||
&& pecl install memcache \
|
||||
&& docker-php-ext-enable memcache \
|
||||
&& (rm -rf /usr/local/lib/php/test/memcache || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/memcache || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: memcached ----
|
||||
&& pecl install memcached-2.1.0 \
|
||||
&& docker-php-ext-enable memcached \
|
||||
&& (rm -rf /usr/local/lib/php/test/memcached || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/memcached || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: mongo ----
|
||||
&& yes | pecl install mongo-1.5.8 \
|
||||
&& docker-php-ext-enable mongo \
|
||||
&& (rm -rf /usr/local/lib/php/test/mongo || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/mongo || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: opcache ----
|
||||
&& pecl install zendopcache \
|
||||
&& docker-php-ext-enable opcache \
|
||||
&& (rm -rf /usr/local/lib/php/test/opcache || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/opcache || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pcntl ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||
&& (rm -rf /usr/local/lib/php/test/pcntl || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pcntl || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pdo_dblib ----
|
||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||
&& (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pdo_firebird ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||
&& (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pdo_pgsql ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||
&& (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pgsql ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||
&& (rm -rf /usr/local/lib/php/test/pgsql || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pgsql || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: phar ----
|
||||
&& pecl install phar \
|
||||
&& docker-php-ext-enable phar \
|
||||
&& (rm -rf /usr/local/lib/php/test/phar || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/phar || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: pspell ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||
&& (rm -rf /usr/local/lib/php/test/pspell || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/pspell || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: recode ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
||||
&& (rm -rf /usr/local/lib/php/test/recode || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/recode || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: redis ----
|
||||
&& pecl install redis-2.2.7 \
|
||||
&& docker-php-ext-enable redis \
|
||||
&& (rm -rf /usr/local/lib/php/test/redis || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/redis || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: shmop ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||
&& (rm -rf /usr/local/lib/php/test/shmop || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/shmop || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: snmp ----
|
||||
&& /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||
&& (rm -rf /usr/local/lib/php/test/snmp || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/snmp || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: sockets ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||
&& (rm -rf /usr/local/lib/php/test/sockets || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/sockets || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: sysvmsg ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||
&& (rm -rf /usr/local/lib/php/test/sysvmsg || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: sysvsem ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||
&& (rm -rf /usr/local/lib/php/test/sysvsem || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/sysvsem || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: sysvshm ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||
&& (rm -rf /usr/local/lib/php/test/sysvshm || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/sysvshm || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: tidy ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||
&& (rm -rf /usr/local/lib/php/test/tidy || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/tidy || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: uploadprogress ----
|
||||
&& pecl install uploadprogress \
|
||||
&& docker-php-ext-enable uploadprogress \
|
||||
&& (rm -rf /usr/local/lib/php/test/uploadprogress || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: wddx ----
|
||||
&& /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||
&& (rm -rf /usr/local/lib/php/test/wddx || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/wddx || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: xdebug ----
|
||||
&& pecl install xdebug-2.2.7 \
|
||||
&& docker-php-ext-enable xdebug \
|
||||
&& (rm -rf /usr/local/lib/php/test/xdebug || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/xdebug || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: xmlrpc ----
|
||||
&& /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||
&& (rm -rf /usr/local/lib/php/test/xmlrpc || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: xsl ----
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||
&& (rm -rf /usr/local/lib/php/test/xsl || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/xsl || true) \
|
||||
\
|
||||
# ---- Installing PHP Extension: zip ----
|
||||
&& /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||
&& /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||
&& (rm -rf /usr/local/lib/php/test/zip || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/zip || true) \
|
||||
\
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
zlib1g \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates \
|
||||
\
|
||||
&& (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 "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### 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
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -445,12 +709,16 @@ RUN set -x \
|
||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||
&& 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 '^oauth$' \
|
||||
&& php-fpm -m | grep -oiE '^oauth$' \
|
||||
&& php -m | grep -oiE '^Zend Opcache$' \
|
||||
&& php-fpm -m | grep -oiE '^Zend Opcache$' \
|
||||
&& php -m | grep -oiE '^openssl$' \
|
||||
@@ -531,6 +799,13 @@ RUN set -x \
|
||||
&& true
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -540,4 +815,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1079
Dockerfiles/mods/Dockerfile-8.0
Normal file
1079
Dockerfiles/mods/Dockerfile-8.0
Normal file
File diff suppressed because it is too large
Load Diff
1064
Dockerfiles/mods/Dockerfile-8.1
Normal file
1064
Dockerfiles/mods/Dockerfile-8.1
Normal file
File diff suppressed because it is too large
Load Diff
1029
Dockerfiles/mods/Dockerfile-8.2
Normal file
1029
Dockerfiles/mods/Dockerfile-8.2
Normal file
File diff suppressed because it is too large
Load Diff
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.6 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.6-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.6-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.2-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.3-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.4-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,23 +35,27 @@ RUN set -x \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -77,7 +88,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -87,4 +97,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
101
Dockerfiles/prod/Dockerfile-8.0
Normal file
101
Dockerfiles/prod/Dockerfile-8.0
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
101
Dockerfiles/prod/Dockerfile-8.1
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
101
Dockerfiles/prod/Dockerfile-8.2
Normal file
@@ -0,0 +1,101 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
cron \
|
||||
rsyslog \
|
||||
socat \
|
||||
supervisor \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Fix: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||
&& sed -i'' 's/.*imklog.*//g' /etc/rsyslog.conf \
|
||||
\
|
||||
# Setup Supervisor
|
||||
&& rm -rf /etc/supervisor* \
|
||||
&& mkdir -p /var/log/supervisor \
|
||||
&& mkdir -p /etc/supervisor/conf.d \
|
||||
&& mkdir -p /etc/supervisor/custom.d \
|
||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/postfix.sh /usr/local/sbin/postfix.sh
|
||||
COPY ./data/supervisord.conf /etc/supervisor/supervisord.conf
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -22,21 +22,32 @@ set_postfix() {
|
||||
local debug="${7}"
|
||||
|
||||
local php_ini_file="${php_ini_dir}/devilbox-runtime-sendmail.ini"
|
||||
local catch_all=
|
||||
local enable_mail=
|
||||
|
||||
# Verify env value
|
||||
if ! env_set "${env_varname}"; then
|
||||
log "info" "\$${env_varname} not set." "${debug}"
|
||||
log "info" "Postfix will not be started." "${debug}"
|
||||
echo "" > "${php_ini_file}"
|
||||
return
|
||||
fi
|
||||
|
||||
# Retrieve env value
|
||||
enable_mail="$( env_get "${env_varname}" )"
|
||||
|
||||
# Enable postfix
|
||||
if [ "${enable_mail}" = "1" ] || [ "${enable_mail}" = "2" ]; then
|
||||
|
||||
if [ "${enable_mail}" = "1" ]; then
|
||||
log "info" "\$${env_varname} set to 1. Enabling postfix" "${debug}"
|
||||
else
|
||||
catch_all="$( env_get "${env_varname}" )"
|
||||
if [ "${catch_all}" = "1" ]; then
|
||||
log "info" "\$${env_varname} set to 1. Enabling postfix catch-all" "${debug}"
|
||||
log "info" "\$${env_varname} set to 2. Enabling postfix catch-all" "${debug}"
|
||||
fi
|
||||
|
||||
# Configure PHP
|
||||
{
|
||||
echo "[mail function]";
|
||||
echo "sendmail_path = $( which sendmail ) -t -i";
|
||||
echo "sendmail_path = $( command -v sendmail ) -t -i";
|
||||
echo ";mail.force_extra_parameters =";
|
||||
echo "mail.add_x_header = On";
|
||||
echo "mail.log = ${php_mail_log}";
|
||||
@@ -74,19 +85,22 @@ set_postfix() {
|
||||
|
||||
# Postfix configuration
|
||||
run "postconf -e 'inet_protocols=ipv4'" "${debug}"
|
||||
|
||||
# Postfix catch-all
|
||||
if [ "${enable_mail}" = "2" ]; then
|
||||
run "postconf -e 'myhostname=localhost'" "${debug}"
|
||||
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
||||
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
||||
|
||||
run "newaliases" "${debug}"
|
||||
fi
|
||||
|
||||
elif [ "${catch_all}" = "0" ]; then
|
||||
log "info" "\$${env_varname} set to 0. Disabling postfix catch-all" "${debug}"
|
||||
elif [ "${enable_mail}" = "0" ]; then
|
||||
log "info" "\$${env_varname} set to 0. Disabling postfix" "${debug}"
|
||||
|
||||
else
|
||||
log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Prodived: ${catch_all}" "${debug}"
|
||||
log "err" "Invalid value for \$${env_varname}. Can only be 0, 1 or 2. Prodived: ${enable_mail}" "${debug}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ disable_modules() {
|
||||
mod="$( echo "${mod}" | xargs )" # trim
|
||||
|
||||
# Find all config files that enable that module
|
||||
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}\.so" "${cfg_path}" || true )"
|
||||
files="$( grep -Er "^(zend_)?extension.*(=|/)${mod}(\\.so)?\$" "${cfg_path}" || true )"
|
||||
|
||||
if [ -n "${files}" ]; then
|
||||
while read -r f; do
|
||||
|
||||
@@ -19,7 +19,7 @@ execute_custom_scripts() {
|
||||
if [ ! -d "${script_dir}" ]; then
|
||||
run "mkdir -p ${script_dir}" "${debug}"
|
||||
fi
|
||||
script_files="$( find "${script_dir}" -type f -iname '*.sh' )"
|
||||
script_files="$( find -L "${script_dir}" -type f -iname '*.sh' | sort -n )"
|
||||
|
||||
# loop over them line by line
|
||||
IFS='
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -p pipefail
|
||||
set -o pipefail
|
||||
|
||||
|
||||
###
|
||||
@@ -24,9 +24,6 @@ DVL_PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
||||
# php-fpm conf.d directory
|
||||
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
DVL_PHP_MAIL_LOG="/var/log/mail.log"
|
||||
|
||||
# This file holds error and access log definitions
|
||||
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
@@ -34,6 +31,9 @@ DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
# PHP-FPM log dir
|
||||
DVL_FPM_LOG_DIR="/var/log/php"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
DVL_PHP_MAIL_LOG="${DVL_FPM_LOG_DIR}/mail.log"
|
||||
|
||||
# Custom ini dir (to be copied to actual ini dir)
|
||||
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||
|
||||
@@ -138,7 +138,7 @@ done
|
||||
###
|
||||
### Supervisor: rsyslogd & postfix
|
||||
###
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ] || [ "$( env_get "ENABLE_MAIL" )" = "2" ]; then
|
||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
fi
|
||||
@@ -190,4 +190,4 @@ execute_custom_scripts "/startup.2.d" "${DEBUG_LEVEL}"
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
||||
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
||||
exec "${@}"
|
||||
|
||||
@@ -22,29 +22,22 @@ set -o pipefail
|
||||
###
|
||||
### Variables
|
||||
###
|
||||
if [ -f "/etc/alpine-release" ]; then
|
||||
MAILLOG="/var/log/maillog"
|
||||
elif [ -f "/etc/debian_version" ]; then
|
||||
MAILLOG="/var/log/mail.log"
|
||||
else
|
||||
MAILLOG="/var/log/maillog"
|
||||
fi
|
||||
|
||||
MAILPID="/var/spool/postfix/pid/master.pid"
|
||||
|
||||
|
||||
###
|
||||
### Sanity checks
|
||||
###
|
||||
if ! command -v pidof >/dev/null 2>&1; then
|
||||
echo "pidof is required for cleaning up tail command."
|
||||
if ! command -v pgrep >/dev/null 2>&1; then
|
||||
echo "pgrep is required for cleaning up tail command."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Give rsyslogd some time to start up
|
||||
sleep 2
|
||||
|
||||
if ! pidof rsyslogd >/dev/null 2>&1; then
|
||||
if ! pgrep rsyslogd >/dev/null 2>&1; then
|
||||
echo "rsyslogd is not running, but required for mail logging."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -6,4 +6,4 @@ pidfile = /var/run/supervisord.pid
|
||||
childlogdir = /var/log/supervisor
|
||||
|
||||
[include]
|
||||
files = /etc/supervisor/conf.d/*.conf
|
||||
files = /etc/supervisor/conf.d/*.conf /etc/supervisor/custom.d/*.conf
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.2 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.2-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.2-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -63,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +92,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,29 +122,81 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# awesomeci
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -137,48 +205,28 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -200,60 +248,330 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -261,7 +579,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -279,7 +600,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -295,27 +616,102 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -330,7 +726,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -354,4 +749,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.3-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.3-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.3-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -63,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +92,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,31 +122,93 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# awesomeci
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -139,65 +217,42 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# drush7
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -219,7 +274,8 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout v2.0.7 \
|
||||
@@ -230,67 +286,353 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -qL https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -298,7 +640,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -316,7 +661,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -332,33 +677,109 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -373,7 +794,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -397,4 +817,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.4-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.4-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.4-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -63,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +92,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,31 +122,93 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# awesomeci
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -139,91 +217,71 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout v1.3.7 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -245,81 +303,374 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout v2.0.9 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -327,7 +678,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -345,7 +699,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -361,37 +715,114 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -406,7 +837,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -430,4 +860,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:5.5-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 5.5 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="5.5-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="5.5-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
||||
&& echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -63,7 +79,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +92,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,35 +122,93 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# asgardcms
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
||||
\
|
||||
# awesomeci
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -143,94 +217,76 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# drupalconsole
|
||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com/hechoendrupal/drupal-console-launcher/releases/download/1.9.4/drupal.phar" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout v2.0.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -252,85 +308,383 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& git checkout v3.4.11 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x /usr/local/bin/phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# photon
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- asgardcms --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- lumen --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- ffi --------------------
|
||||
&& gem install ffi -v 1.12.2 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -338,7 +692,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -356,7 +713,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -372,40 +729,117 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '5.5' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -420,7 +854,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -444,4 +877,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:7.0-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.0 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.0-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.0-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -54,6 +70,7 @@ RUN set -x \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
@@ -63,7 +80,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +93,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
mysql-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,35 +123,98 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
zsh-common \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# asgardcms
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
||||
\
|
||||
# awesomeci
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& apt-get update \
|
||||
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -143,107 +223,71 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# drush9
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||
&& cd /usr/local/src/drush9 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||
&& rm -rf /usr/local/src/drush9/.git \
|
||||
&& rm -rf /usr/local/src/drush9/docs \
|
||||
&& rm -rf /usr/local/src/drush9/examples \
|
||||
&& rm -rf /usr/local/src/drush9/misc \
|
||||
\
|
||||
# drupalconsole
|
||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout v2.0.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -265,85 +309,380 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& git checkout v3.4.11 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x /usr/local/bin/phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# photon
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- asgardcms --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- lumen --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -351,7 +690,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -369,7 +711,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -385,41 +727,116 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -434,7 +851,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -458,4 +874,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:7.1-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.1 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.1-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.1-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu wily main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x jessie main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -54,6 +70,7 @@ RUN set -x \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
@@ -63,7 +80,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +93,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
mysql-client \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,35 +123,91 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython-dev \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
\
|
||||
# asgardcms
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
||||
\
|
||||
# awesomeci
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -143,107 +216,71 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# drush9
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||
&& cd /usr/local/src/drush9 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||
&& rm -rf /usr/local/src/drush9/.git \
|
||||
&& rm -rf /usr/local/src/drush9/docs \
|
||||
&& rm -rf /usr/local/src/drush9/examples \
|
||||
&& rm -rf /usr/local/src/drush9/misc \
|
||||
\
|
||||
# drupalconsole
|
||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& git checkout $(git tag | grep '^v2\.3\.' | sort -u | tail -1) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -265,85 +302,380 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phalcon
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& git checkout v3.4.11 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -s /usr/local/src/phalcon-devtools/phalcon.php /usr/local/bin/phalcon \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x /usr/local/bin/phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# photon
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- asgardcms --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- lumen --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -351,7 +683,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -369,7 +704,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -385,41 +720,116 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phalcon commands | grep -E '[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -434,7 +844,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -458,4 +867,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:7.3-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.3 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.3-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.3-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -54,6 +70,7 @@ RUN set -x \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
@@ -63,7 +80,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +93,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
mysql-client \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,35 +123,92 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
# asgardcms
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
||||
\
|
||||
# awesomeci
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -143,107 +217,90 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# drush9
|
||||
\
|
||||
# -------------------- drush9 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||
&& cd /usr/local/src/drush9 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||
&& rm -rf /usr/local/src/drush9/.git \
|
||||
&& rm -rf /usr/local/src/drush9/docs \
|
||||
&& rm -rf /usr/local/src/drush9/examples \
|
||||
&& rm -rf /usr/local/src/drush9/misc \
|
||||
\
|
||||
# drupalconsole
|
||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -265,74 +322,381 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# photon
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- asgardcms --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- lumen --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -340,7 +704,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -358,7 +725,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -374,40 +741,118 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.3' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -422,7 +867,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -446,4 +890,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -2,16 +2,38 @@
|
||||
FROM devilbox/php-fpm:7.4-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM 7.4 Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="7.4-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="7.4-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,28 +45,22 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
&& echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv A1715D88E1DF1F24 \
|
||||
&& echo "deb http://ppa.launchpad.net/git-core/ppa/ubuntu artful main" > /etc/apt/sources.list.d/git.list \
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& curl -sS "https://deb.nodesource.com/gpgkey/nodesource.gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/node.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -54,6 +70,7 @@ RUN set -x \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
@@ -63,7 +80,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -74,29 +93,27 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
mysql-client \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -106,35 +123,92 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (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)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
# composer
|
||||
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
|
||||
# ansible
|
||||
&& /usr/local/bin/pip install --no-cache-dir --upgrade setuptools \
|
||||
&& /usr/local/bin/pip install --no-cache-dir ansible \
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
# asgardcms
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/asgardcms \
|
||||
\
|
||||
# awesomeci
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -143,107 +217,90 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
&& gem install mdl \
|
||||
&& gem install scss_lint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y eslint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y jsonlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y mdlint \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y gulp \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# codeception
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/codecept \
|
||||
\
|
||||
# deployer
|
||||
&& curl https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
# drush7
|
||||
\
|
||||
# -------------------- drush7 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush7 \
|
||||
&& cd /usr/local/src/drush7 \
|
||||
&& git checkout 7.4.0 \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush7 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush7 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush7/drush /usr/local/bin/drush7 \
|
||||
&& rm -rf /usr/local/src/drush7/.git \
|
||||
&& rm -rf /usr/local/src/drush7/docs \
|
||||
&& rm -rf /usr/local/src/drush7/examples \
|
||||
&& rm -rf /usr/local/src/drush7/misc \
|
||||
\
|
||||
# drush8
|
||||
\
|
||||
# -------------------- drush8 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush8 \
|
||||
&& cd /usr/local/src/drush8 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/8[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush8 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush8 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/drush8/drush /usr/local/bin/drush8 \
|
||||
&& rm -rf /usr/local/src/drush8/.git \
|
||||
&& rm -rf /usr/local/src/drush8/docs \
|
||||
&& rm -rf /usr/local/src/drush8/examples \
|
||||
&& rm -rf /usr/local/src/drush8/misc \
|
||||
\
|
||||
# drush9
|
||||
\
|
||||
# -------------------- drush9 --------------------
|
||||
&& git clone https://github.com/drush-ops/drush.git /usr/local/src/drush9 \
|
||||
&& cd /usr/local/src/drush9 \
|
||||
&& git checkout $( git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | grep -E 'tags/9[.0-9]+$' | tail -1 | sed 's|.*/||g' ) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/drush9 \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && php -d memory_limit=-1 `which composer` install --no-interaction --no-progress' \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/drush9 && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 install --no-interaction --no-progress' \
|
||||
&& ln -s /usr/local/src/drush9/drush /usr/local/bin/drush9 \
|
||||
&& rm -rf /usr/local/src/drush9/.git \
|
||||
&& rm -rf /usr/local/src/drush9/docs \
|
||||
&& rm -rf /usr/local/src/drush9/examples \
|
||||
&& rm -rf /usr/local/src/drush9/misc \
|
||||
\
|
||||
# drupalconsole
|
||||
&& curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal \
|
||||
\
|
||||
# -------------------- drupalconsole --------------------
|
||||
&& DURL="https://github.com$(curl -sS 'https://github.com/hechoendrupal/drupal-console-launcher/releases' | grep -Eo 'href="/.+drupal.phar"' | head -1 | sed 's/^href="//g' | sed 's/"$//g')" \
|
||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||
&& chmod +x /usr/local/bin/drupal \
|
||||
# gitflow
|
||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
# grunt
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt; do sleep 1; done \
|
||||
&& until yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y grunt-cli; do sleep 1; done \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# laravel
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && composer install --no-interaction --no-progress --no-dev' \
|
||||
&& ln -s /usr/local/src/laravel-installer/laravel /usr/local/bin/laravel \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
# linkcheck
|
||||
&& curl https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
# linuxbrew
|
||||
&& git clone https://github.com/Linuxbrew/brew.git /usr/local/src/linuxbrew \
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/linuxbrew \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "PATH=/usr/local/src/linuxbrew/bin:/usr/local/src/linuxbrew/sbin:/usr/bin:/usr/sbin:/bin:/sbin" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export MANPATH=/usr/local/src/linuxbrew/share/man:${MANPATH}" >> /home/devilbox/${v}' \
|
||||
&& v="${BASH_PROFILE}" su ${MY_USER} -c -p \
|
||||
'echo "export INFOPATH=/usr/local/src/linuxbrew/share/man:${INFOPATH}" >> /home/devilbox/${v}' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew config' \
|
||||
\
|
||||
# mhsendmail
|
||||
&& wget https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 \
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
# mysqldumpsecure
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
@@ -265,74 +322,381 @@ RUN set -x \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
# phpcs
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
||||
\
|
||||
# -------------------- phalcon --------------------
|
||||
&& git clone https://github.com/phalcon/phalcon-devtools /usr/local/src/phalcon-devtools \
|
||||
&& cd /usr/local/src/phalcon-devtools \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/phalcon-devtools \
|
||||
&& su - ${MY_USER} -c 'cd /usr/local/src/phalcon-devtools && ./phalcon.sh' \
|
||||
&& ln -sf /usr/local/src/phalcon-devtools/phalcon /usr/local/bin/phalcon \
|
||||
&& chmod +x phalcon \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/phalcon-devtools/.git \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
# phpcbf
|
||||
&& curl -q https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
# phpunit
|
||||
&& curl -qL https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v3.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- phpunit --------------------
|
||||
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||
&& chmod +x /usr/local/bin/phpunit \
|
||||
\
|
||||
# photon
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" composer global require "photoncms/installer" \
|
||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/photon \
|
||||
\
|
||||
# pm2
|
||||
&& until npm install pm2 -g; do sleep 1; done \
|
||||
# sass
|
||||
&& gem install sass \
|
||||
# symfony
|
||||
&& curl https://symfony.com/installer -L -o /usr/local/bin/symfony \
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
# webpack
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack \
|
||||
&& yarn global add --prod --non-interactive --link-duplicates --silent --cache-folder /tmp/y webpack-cli \
|
||||
&& rm -rf /tmp/y \
|
||||
\
|
||||
# wpcli
|
||||
&& curl https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
# yamllint
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests libpython-dev python-setuptools libyaml-dev \
|
||||
\
|
||||
&& /usr/local/bin/pip install --no-cache-dir yamllint \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false libpython-dev python-setuptools libyaml-dev \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# cleanup
|
||||
&& rm -rf /home/${MY_USER}/.*json \
|
||||
&& rm -rf /home/${MY_USER}/.cache \
|
||||
&& rm -rf /home/${MY_USER}/.composer \
|
||||
&& rm -rf /home/${MY_USER}/.config \
|
||||
&& rm -rf /home/${MY_USER}/.drush \
|
||||
&& rm -rf /home/${MY_USER}/.gem \
|
||||
&& rm -rf /home/${MY_USER}/.npm \
|
||||
&& rm -rf /home/${MY_USER}/.subversion \
|
||||
&& rm -rf /home/${MY_USER}/.v8* \
|
||||
\
|
||||
&& rm -rf /root/.*json \
|
||||
&& rm -rf /root/.cache \
|
||||
&& rm -rf /root/.composer \
|
||||
&& rm -rf /root/.config \
|
||||
&& rm -rf /root/.drush \
|
||||
&& rm -rf /root/.gem \
|
||||
&& rm -rf /root/.npm \
|
||||
&& rm -rf /root/.subversion \
|
||||
&& rm -rf /root/.v8* \
|
||||
\
|
||||
&& rm -rf /tmp/* \
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- asgardcms --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require asgardcms/asgardcms-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/asgardcms/asgardcms-installer/asgardcms /usr/local/bin/ \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
# -------------------- codeception --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require codeception/codeception \
|
||||
&& ln -s /usr/local/src/composer/vendor/codeception/codeception/codecept /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- lumen --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
||||
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||
\
|
||||
# -------------------- prestissimo --------------------
|
||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -340,7 +704,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -358,7 +725,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -374,40 +741,118 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
&& composer --version 2>/dev/null | grep -E 'version\s*[.0-9]+' \
|
||||
&& ansible --version | grep -E '^ansible [.0-9]+$' \
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[.0-9]+' \
|
||||
&& mdl --version | grep -E '[.0-9]+' \
|
||||
&& scss-lint --version | grep -E '[.0-9]+' \
|
||||
&& eslint -v | grep -E '[.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[.0-9]+' \
|
||||
&& mdlint --version | grep -E '[.0-9]+' \
|
||||
&& gulp --version | grep -E '[.0-9]+' \
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[.0-9]+$' \
|
||||
&& dep --version 2>/dev/null | grep -E 'Deployer\s*[.0-9]+' \
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '7.4' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||
&& drush8 --version | grep -E '8[.0-9]+\s*$' \
|
||||
&& drush9 --version | grep -E '9[.0-9]+\s*$' \
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[.0-9]' \
|
||||
&& git-flow version | grep -E '[.0-9]+' \
|
||||
&& grunt --version | grep -E '[.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[.0-9]+' \
|
||||
&& su - ${MY_USER} -c '/usr/local/src/linuxbrew/bin/brew --version' | grep -E 'Homebrew\s*[.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[.0-9]+' \
|
||||
&& photon --version | grep -E 'Installer [.0-9]+' \
|
||||
&& pm2 --version | grep -E '[.0-9]+' \
|
||||
&& sass --version | grep -E '[.0-9]+' \
|
||||
&& symfony --version | grep -E 'version\s*[.0-9]+' \
|
||||
&& webpack --version | grep -E '[.0-9]+' \
|
||||
&& wp --allow-root --version | grep -E '[.0-9]+' \
|
||||
&& yamllint --version 2>&1 | grep -E '[.0-9]+' \
|
||||
&& true
|
||||
&& drupal --version | grep -E 'Drupal Console Launcher\s*[0-9][.0-9]' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phalcon commands | grep -E '[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
@@ -422,7 +867,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -446,4 +890,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
804
Dockerfiles/work/Dockerfile-8.0
Normal file
804
Dockerfiles/work/Dockerfile-8.0
Normal file
@@ -0,0 +1,804 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.0-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.0-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v3.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.0' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.0.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.0.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
804
Dockerfiles/work/Dockerfile-8.1
Normal file
804
Dockerfiles/work/Dockerfile-8.1
Normal file
@@ -0,0 +1,804 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.1-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.1-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- laravel --------------------
|
||||
&& git clone https://github.com/laravel/installer /usr/local/src/laravel-installer \
|
||||
&& cd /usr/local/src/laravel-installer \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
\
|
||||
&& chown -R ${MY_USER}:${MY_GROUP} /usr/local/src/laravel-installer \
|
||||
&& su - ${MY_USER} -c 'PATH=/usr/local/bin:$PATH; cd /usr/local/src/laravel-installer && COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer install --no-interaction --no-progress --no-dev' \
|
||||
&& rm -rf /usr/local/src/laravel-installer/laravel/.git \
|
||||
\
|
||||
&& ln -s /usr/local/src/laravel-installer/bin/laravel /usr/local/bin/laravel \
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- php-cs-fixer --------------------
|
||||
&& curl -sS -k -L --fail https://cs.symfony.com/download/php-cs-fixer-v3.phar > /usr/local/bin/php-cs-fixer \
|
||||
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.1' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.1' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& laravel --version | grep -E '(Installer|version)\s*[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.1.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.1.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
786
Dockerfiles/work/Dockerfile-8.2
Normal file
786
Dockerfiles/work/Dockerfile-8.2
Normal file
@@ -0,0 +1,786 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
FROM devilbox/php-fpm:8.2-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="8.2-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BASH_PROFILE=".bashrc"
|
||||
|
||||
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
\
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
automake \
|
||||
bash-completion \
|
||||
binutils \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
certbot \
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
file \
|
||||
gawk \
|
||||
gcc \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
iputils-ping \
|
||||
jq \
|
||||
less \
|
||||
libc-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
moreutils \
|
||||
\
|
||||
mariadb-client \
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
tree \
|
||||
unzip \
|
||||
vim \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
xz-utils \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- composer --------------------
|
||||
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
\
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
\
|
||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
\
|
||||
\
|
||||
# -------------------- pip --------------------
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libpython3-dev \
|
||||
python3-distutils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
\
|
||||
\
|
||||
# -------------------- nvm --------------------
|
||||
&& NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p /opt/nvm \
|
||||
\
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="/opt/nvm" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm use --lts' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; corepack enable' devilbox \
|
||||
\
|
||||
\
|
||||
# -------------------- pgsql_client --------------------
|
||||
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- mongo_client --------------------
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
\
|
||||
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
\
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# -------------------- awesomeci --------------------
|
||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||
&& cd /usr/local/src/awesome-ci \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& ./configure --prefix=/usr/local \
|
||||
&& make install \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/awesome-ci \
|
||||
\
|
||||
\
|
||||
# -------------------- deployer --------------------
|
||||
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||
&& chmod +x /usr/local/bin/dep \
|
||||
\
|
||||
# -------------------- gitflow --------------------
|
||||
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||
&& cd /tmp/gitflow \
|
||||
&& make install \
|
||||
&& cd / && rm -rf /tmp/gitflow \
|
||||
\
|
||||
\
|
||||
# -------------------- linkcheck --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||
&& chmod +x /usr/local/bin/linkcheck \
|
||||
\
|
||||
\
|
||||
# -------------------- mhsendmail --------------------
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- mysqldumpsecure --------------------
|
||||
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcs --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||
&& chmod +x /usr/local/bin/phpcs \
|
||||
\
|
||||
\
|
||||
# -------------------- phpcbf --------------------
|
||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||
&& chmod +x /usr/local/bin/phpcbf \
|
||||
\
|
||||
\
|
||||
# -------------------- phpmd --------------------
|
||||
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||
&& chmod +x /usr/local/bin/phpmd \
|
||||
\
|
||||
\
|
||||
# -------------------- symfony --------------------
|
||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_$(dpkg-architecture --query DEB_HOST_ARCH)" > /usr/local/bin/symfony \
|
||||
&& chmod +x /usr/local/bin/symfony \
|
||||
\
|
||||
# -------------------- wkhtmltopdf --------------------
|
||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||
fi \
|
||||
\
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi \
|
||||
\
|
||||
\
|
||||
# -------------------- wpcli --------------------
|
||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||
&& chmod +x /usr/local/bin/wp \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
RUN set -eux \
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- angular_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||
\
|
||||
# -------------------- eslint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||
\
|
||||
# -------------------- grunt --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||
\
|
||||
# -------------------- grunt_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||
\
|
||||
# -------------------- gulp --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||
\
|
||||
# -------------------- jsonlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||
\
|
||||
# -------------------- pm2 --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||
\
|
||||
# -------------------- mdlint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||
\
|
||||
# -------------------- sass --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||
\
|
||||
# -------------------- stylelint --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||
\
|
||||
# -------------------- vue_cli_service_global --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||
\
|
||||
# -------------------- webpack --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||
\
|
||||
# -------------------- webpack_cli --------------------
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- mixlib_config --------------------
|
||||
&& gem install mixlib-config -v 2.2.4 \
|
||||
\
|
||||
# -------------------- rb_inotify --------------------
|
||||
&& gem install rb-inotify -v 0.9.10 \
|
||||
\
|
||||
# -------------------- mdl --------------------
|
||||
&& gem install mdl -v 0.5.0 \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
RUN set -eux \
|
||||
# -------------------- yamllint --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||
\
|
||||
# -------------------- yq --------------------
|
||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||
\
|
||||
\
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||
|
||||
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
\
|
||||
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
\
|
||||
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
||||
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Composer --------------------
|
||||
\
|
||||
# -------------------- PIP --------------------
|
||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||
\
|
||||
# -------------------- NPM --------------------
|
||||
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- GEM --------------------
|
||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||
\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
&& (rm -rf /home/devilbox/.*json || true) \
|
||||
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||
&& (rm -rf /home/devilbox/.cache || true) \
|
||||
&& (rm -rf /home/devilbox/.composer || true) \
|
||||
&& (rm -rf /home/devilbox/.config || true) \
|
||||
&& (rm -rf /home/devilbox/.console || true) \
|
||||
&& (rm -rf /home/devilbox/.drush || true) \
|
||||
&& (rm -rf /home/devilbox/.gem || true) \
|
||||
&& (rm -rf /home/devilbox/.local || true) \
|
||||
&& (rm -rf /home/devilbox/.node || true) \
|
||||
&& (rm -rf /home/devilbox/.npm || true) \
|
||||
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /root/.*json || true) \
|
||||
&& (rm -rf /root/.ansible || true) \
|
||||
&& (rm -rf /root/.cache || true) \
|
||||
&& (rm -rf /root/.composer || true) \
|
||||
&& (rm -rf /root/.config || true) \
|
||||
&& (rm -rf /root/.console || true) \
|
||||
&& (rm -rf /root/.drush || true) \
|
||||
&& (rm -rf /root/.gem || true) \
|
||||
&& (rm -rf /root/.local || true) \
|
||||
&& (rm -rf /root/.node || true) \
|
||||
&& (rm -rf /root/.npm || true) \
|
||||
&& (rm -rf /root/.pm2 || true) \
|
||||
&& (rm -rf /root/.subversion || true) \
|
||||
&& (rm -rf /root/.v8* || true) \
|
||||
&& (rm -rf /root/node_modules || true) \
|
||||
&& (rm -rf /root/yarn.lock || true) \
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
@@ -55,7 +55,7 @@ set_mds_settings() {
|
||||
else
|
||||
mds_pass_val="$( env_get "${mds_pass_var}" )"
|
||||
log "info" "\$${mds_pass_var} set for mysqldump-secure. Changing to '******'" "${debug}"
|
||||
run "sed -i'' 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
||||
run "perl -pi -e 's/^password.*/password = ${mds_pass_val}/g' ${mds_cnf}" "${debug}"
|
||||
fi
|
||||
|
||||
# MySQL host
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -p pipefail
|
||||
set -o pipefail
|
||||
|
||||
|
||||
###
|
||||
@@ -24,9 +24,6 @@ DVL_PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
||||
# php-fpm conf.d directory
|
||||
DVL_PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
DVL_PHP_MAIL_LOG="/var/log/mail.log"
|
||||
|
||||
# This file holds error and access log definitions
|
||||
DVL_PHP_FPM_CONF_LOGFILE="${DVL_PHP_FPM_DIR}/zzz-entrypoint-logfiles.conf"
|
||||
DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
@@ -34,6 +31,9 @@ DVL_PHP_INI_CONF_LOGFILE="${DVL_PHP_INI_DIR}/zzz-entrypoint-logfiles.ini"
|
||||
# PHP-FPM log dir
|
||||
DVL_FPM_LOG_DIR="/var/log/php"
|
||||
|
||||
# This is the log file for any mail related functions
|
||||
DVL_PHP_MAIL_LOG="${DVL_FPM_LOG_DIR}/mail.log"
|
||||
|
||||
# Custom ini dir (to be copied to actual ini dir)
|
||||
DVL_PHP_CUST_INI_DIR="/etc/php-custom.d"
|
||||
|
||||
@@ -138,7 +138,7 @@ done
|
||||
###
|
||||
### Supervisor: rsyslogd & postfix
|
||||
###
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ]; then
|
||||
if [ "$( env_get "ENABLE_MAIL" )" = "1" ] || [ "$( env_get "ENABLE_MAIL" )" = "2" ]; then
|
||||
supervisor_add_service "rsyslogd" "/usr/sbin/rsyslogd -n" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}" "1"
|
||||
supervisor_add_service "postfix" "/usr/local/sbin/postfix.sh" "${DVL_SUPERVISOR_CONFD}" "${DEBUG_LEVEL}"
|
||||
fi
|
||||
@@ -217,4 +217,4 @@ execute_custom_scripts "/startup.2.d" "${DEBUG_LEVEL}"
|
||||
### Startup
|
||||
###
|
||||
log "info" "Starting supervisord" "${DEBUG_LEVEL}"
|
||||
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
||||
exec "${@}"
|
||||
|
||||
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.0.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.1.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
134
Dockerfiles/work/data/php-fpm.conf/php-fpm-8.2.conf
Normal file
@@ -0,0 +1,134 @@
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings can be overwritten by later includes
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Timeouts
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; The timeout for serving a single request after which the worker process will be killed.
|
||||
; This option should be used when the 'max_execution_time' ini option does not stop script
|
||||
; execution for some reason.
|
||||
request_terminate_timeout = 120s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Logging
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
error_log = /proc/self/fd/2
|
||||
log_level = notice
|
||||
|
||||
[www]
|
||||
; if we send this to /proc/self/fd/1, it never appears
|
||||
access.log = /proc/self/fd/2
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Backlog configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; A maximum of backlog incoming connections will be queued for processing.
|
||||
; If a connection request arrives with the queue full the client may receive an error with an
|
||||
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
|
||||
; the request may be ignored so that retries may succeed.
|
||||
|
||||
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
|
||||
; are silently truncated
|
||||
listen.backlog = 1024
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Worker configuration
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; static - the number of child processes is fixed (pm.max_children).
|
||||
;
|
||||
; dynamic - the number of child processes is set dynamically based on the following directives:
|
||||
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
|
||||
;
|
||||
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
|
||||
; pm.start_servers are started when the service is started.
|
||||
pm = ondemand
|
||||
|
||||
; The maximum number of child processes to be created
|
||||
pm.max_children = 50
|
||||
|
||||
; The number of child processes created on startup. Used only when pm is set to dynamic.
|
||||
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
|
||||
pm.start_servers = 4
|
||||
|
||||
; The desired minimum number of idle server processes.
|
||||
pm.min_spare_servers = 2
|
||||
|
||||
; The desired maximum number of idle server processes.
|
||||
pm.max_spare_servers = 6
|
||||
|
||||
; The number of requests each child process should execute before respawning.
|
||||
; This can be useful to work around memory leaks in 3rd party libraries.
|
||||
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
|
||||
; Default value: 0.
|
||||
pm.max_requests = 500
|
||||
|
||||
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
|
||||
pm.process_idle_timeout = 10s
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Include
|
||||
; ############################################################
|
||||
|
||||
|
||||
[global]
|
||||
include = /usr/local/etc/php-fpm.d/*.conf
|
||||
|
||||
|
||||
; ################################################################################
|
||||
; ####
|
||||
; #### The following settings overwrite any includes again
|
||||
; ####
|
||||
; ################################################################################
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Required for Dockerization
|
||||
; ############################################################
|
||||
|
||||
[global]
|
||||
daemonize = no
|
||||
|
||||
[www]
|
||||
; Keep env variables set by docker
|
||||
clear_env = no
|
||||
|
||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
|
||||
; stderr will be redirected to /dev/null according to FastCGI specs.
|
||||
; Note: on highloaded environement, this can cause some delay in the page
|
||||
; process time (several ms).
|
||||
; Default Value: no
|
||||
catch_workers_output = yes
|
||||
|
||||
|
||||
; ############################################################
|
||||
; User and Group
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
user = devilbox
|
||||
group = devilbox
|
||||
|
||||
|
||||
; ############################################################
|
||||
; Networking
|
||||
; ############################################################
|
||||
|
||||
[www]
|
||||
; Ensure to listen here
|
||||
listen = 9000
|
||||
@@ -43,7 +43,6 @@ html_errors = On
|
||||
|
||||
|
||||
; 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
|
||||
|
||||
@@ -43,7 +43,6 @@ html_errors = On
|
||||
|
||||
|
||||
; 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
|
||||
|
||||
@@ -43,7 +43,6 @@ html_errors = On
|
||||
|
||||
|
||||
; 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/work/data/php-ini.d/php-8.0.ini
Normal file
48
Dockerfiles/work/data/php-ini.d/php-8.0.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.0-work
|
||||
; ############################################################
|
||||
|
||||
; 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 = On
|
||||
display_startup_errors = On
|
||||
log_errors = On
|
||||
html_errors = On
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/work/data/php-ini.d/php-8.1.ini
Normal file
48
Dockerfiles/work/data/php-ini.d/php-8.1.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.1-work
|
||||
; ############################################################
|
||||
|
||||
; 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 = On
|
||||
display_startup_errors = On
|
||||
log_errors = On
|
||||
html_errors = On
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
48
Dockerfiles/work/data/php-ini.d/php-8.2.ini
Normal file
48
Dockerfiles/work/data/php-ini.d/php-8.2.ini
Normal file
@@ -0,0 +1,48 @@
|
||||
; ############################################################
|
||||
; # Devilbox PHP defaults for 8.2-work
|
||||
; ############################################################
|
||||
|
||||
; 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 = On
|
||||
display_startup_errors = On
|
||||
log_errors = On
|
||||
html_errors = On
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.mode = Off
|
||||
xdebug.start_with_request = default
|
||||
xdebug.client_port = 9000
|
||||
@@ -4,4 +4,3 @@ Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/loca
|
||||
|
||||
# Allow devilbox user to do anything without password
|
||||
%devilbox ALL=(ALL) NOPASSWD: ALL
|
||||
|
||||
|
||||
746
Makefile
746
Makefile
@@ -1,463 +1,343 @@
|
||||
location = Dockerfiles/
|
||||
ifneq (,)
|
||||
.error This Makefile requires GNU Make.
|
||||
endif
|
||||
|
||||
###
|
||||
### Default
|
||||
###
|
||||
# Ensure additional Makefiles are present
|
||||
MAKEFILES = Makefile.docker Makefile.lint
|
||||
$(MAKEFILES): URL=https://raw.githubusercontent.com/devilbox/makefiles/master/$(@)
|
||||
$(MAKEFILES):
|
||||
@if ! (curl --fail -sS -o $(@) $(URL) || wget -O $(@) $(URL)); then \
|
||||
echo "Error, curl or wget required."; \
|
||||
echo "Exiting."; \
|
||||
false; \
|
||||
fi
|
||||
include $(MAKEFILES)
|
||||
|
||||
# Set default Target
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default configuration
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Own vars
|
||||
TAG = latest
|
||||
|
||||
# Makefile.docker overwrites
|
||||
NAME = PHP
|
||||
#VERSION = 5.5
|
||||
IMAGE = devilbox/php-fpm
|
||||
#FLAVOUR = debian
|
||||
#STAGE = base
|
||||
FILE = Dockerfile-$(VERSION)
|
||||
DIR = Dockerfiles/$(STAGE)
|
||||
|
||||
ifeq ($(strip $(TAG)),latest)
|
||||
DOCKER_TAG = $(VERSION)-$(STAGE)
|
||||
BASE_TAG = $(VERSION)-base
|
||||
MODS_TAG = $(VERSION)-mods
|
||||
PROD_TAG = $(VERSION)-prod
|
||||
WORK_TAG = $(VERSION)-work
|
||||
else
|
||||
DOCKER_TAG = $(VERSION)-$(STAGE)-$(TAG)
|
||||
BASE_TAG = $(VERSION)-base-$(TAG)
|
||||
MODS_TAG = $(VERSION)-mods-$(TAG)
|
||||
PROD_TAG = $(VERSION)-prod-$(TAG)
|
||||
WORK_TAG = $(VERSION)-work-$(TAG)
|
||||
endif
|
||||
ARCH = linux/amd64
|
||||
|
||||
|
||||
# Makefile.lint overwrites
|
||||
FL_IGNORES = .git/,.github/,tests/
|
||||
SC_IGNORES = .git/,.github/,tests/
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Default Target
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: help
|
||||
help:
|
||||
@printf "################################################################################\n"
|
||||
@printf "# devilbox/php:XX-XX Makefile\n"
|
||||
@printf "################################################################################\n\n"
|
||||
@printf "%s\n\n" "Generate and build devilbox PHP-FPM docker images"
|
||||
@printf "%s\n" "make generate: Generate Dockerfiles (requires Ansible)"
|
||||
@printf "%s\n" "make readme: Update Readme with php modules (requires images to be built)"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make gen-build: Generate and build all images"
|
||||
@printf "%s\n" "make gen-rebuild: Generate and rebuild all images"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-all: Build all images"
|
||||
@printf "%s\n" "make rebuild-all: Rebuild all images"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-base: Build all base images"
|
||||
@printf "%s\n" "make build-mods: Build all mods images"
|
||||
@printf "%s\n" "make build-prod: Build all prod images"
|
||||
@printf "%s\n" "make build-work: Build all work images"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make rebuild-base: Rebuild all base images"
|
||||
@printf "%s\n" "make rebuild-mods: Rebuild all mods images"
|
||||
@printf "%s\n" "make rebuild-prod: Rebuild all prod images"
|
||||
@printf "%s\n" "make rebuild-work: Rebuild all work images"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-base-52: Build PHP 5.2 base image"
|
||||
@printf "%s\n" "make build-base-53: Build PHP 5.3 base image"
|
||||
@printf "%s\n" "make build-base-54: Build PHP 5.4 base image"
|
||||
@printf "%s\n" "make build-base-55: Build PHP 5.5 base image"
|
||||
@printf "%s\n" "make build-base-56: Build PHP 5.6 base image"
|
||||
@printf "%s\n" "make build-base-70: Build PHP 7.0 base image"
|
||||
@printf "%s\n" "make build-base-71: Build PHP 7.1 base image"
|
||||
@printf "%s\n" "make build-base-72: Build PHP 7.2 base image"
|
||||
@printf "%s\n" "make build-base-73: Build PHP 7.3 base image"
|
||||
@printf "%s\n" "make build-base-74: Build PHP 7.4 base image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-mods-52: Build PHP 5.2 mods image"
|
||||
@printf "%s\n" "make build-mods-53: Build PHP 5.3 mods image"
|
||||
@printf "%s\n" "make build-mods-54: Build PHP 5.4 mods image"
|
||||
@printf "%s\n" "make build-mods-55: Build PHP 5.5 mods image"
|
||||
@printf "%s\n" "make build-mods-56: Build PHP 5.6 mods image"
|
||||
@printf "%s\n" "make build-mods-70: Build PHP 7.0 mods image"
|
||||
@printf "%s\n" "make build-mods-71: Build PHP 7.1 mods image"
|
||||
@printf "%s\n" "make build-mods-72: Build PHP 7.2 mods image"
|
||||
@printf "%s\n" "make build-mods-73: Build PHP 7.3 mods image"
|
||||
@printf "%s\n" "make build-mods-74: Build PHP 7.4 mods image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-prod-52: Build PHP 5.2 prod image"
|
||||
@printf "%s\n" "make build-prod-53: Build PHP 5.3 prod image"
|
||||
@printf "%s\n" "make build-prod-54: Build PHP 5.4 prod image"
|
||||
@printf "%s\n" "make build-prod-55: Build PHP 5.5 prod image"
|
||||
@printf "%s\n" "make build-prod-56: Build PHP 5.6 prod image"
|
||||
@printf "%s\n" "make build-prod-70: Build PHP 7.0 prod image"
|
||||
@printf "%s\n" "make build-prod-71: Build PHP 7.1 prod image"
|
||||
@printf "%s\n" "make build-prod-72: Build PHP 7.2 prod image"
|
||||
@printf "%s\n" "make build-prod-73: Build PHP 7.3 prod image"
|
||||
@printf "%s\n" "make build-prod-74: Build PHP 7.4 prod image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make build-work-52: Build PHP 5.2 work image"
|
||||
@printf "%s\n" "make build-work-53: Build PHP 5.3 work image"
|
||||
@printf "%s\n" "make build-work-54: Build PHP 5.4 work image"
|
||||
@printf "%s\n" "make build-work-55: Build PHP 5.5 work image"
|
||||
@printf "%s\n" "make build-work-56: Build PHP 5.6 work image"
|
||||
@printf "%s\n" "make build-work-70: Build PHP 7.0 work image"
|
||||
@printf "%s\n" "make build-work-71: Build PHP 7.1 work image"
|
||||
@printf "%s\n" "make build-work-72: Build PHP 7.2 work image"
|
||||
@printf "%s\n" "make build-work-73: Build PHP 7.3 work image"
|
||||
@printf "%s\n" "make build-work-74: Build PHP 7.4 work image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make rebuild-base-52: Build PHP 5.2 base image"
|
||||
@printf "%s\n" "make rebuild-base-53: Build PHP 5.3 base image"
|
||||
@printf "%s\n" "make rebuild-base-54: Build PHP 5.4 base image"
|
||||
@printf "%s\n" "make rebuild-base-55: Build PHP 5.5 base image"
|
||||
@printf "%s\n" "make rebuild-base-56: Build PHP 5.6 base image"
|
||||
@printf "%s\n" "make rebuild-base-70: Build PHP 7.0 base image"
|
||||
@printf "%s\n" "make rebuild-base-71: Build PHP 7.1 base image"
|
||||
@printf "%s\n" "make rebuild-base-72: Build PHP 7.2 base image"
|
||||
@printf "%s\n" "make rebuild-base-73: Build PHP 7.3 base image"
|
||||
@printf "%s\n" "make rebuild-base-74: Build PHP 7.4 base image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make rebuild-mods-52: Build PHP 5.2 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-53: Build PHP 5.3 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-54: Build PHP 5.4 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-55: Build PHP 5.5 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-56: Build PHP 5.6 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-70: Build PHP 7.0 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-71: Build PHP 7.1 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-72: Build PHP 7.2 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-73: Build PHP 7.3 mods image"
|
||||
@printf "%s\n" "make rebuild-mods-74: Build PHP 7.4 mods image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make rebuild-prod-52: Build PHP 5.2 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-53: Build PHP 5.3 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-54: Build PHP 5.4 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-55: Build PHP 5.5 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-56: Build PHP 5.6 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-70: Build PHP 7.0 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-71: Build PHP 7.1 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-72: Build PHP 7.2 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-73: Build PHP 7.3 prod image"
|
||||
@printf "%s\n" "make rebuild-prod-74: Build PHP 7.4 prod image"
|
||||
@printf "\n"
|
||||
@printf "%s\n" "make rebuild-work-52: Build PHP 5.2 work image"
|
||||
@printf "%s\n" "make rebuild-work-53: Build PHP 5.3 work image"
|
||||
@printf "%s\n" "make rebuild-work-54: Build PHP 5.4 work image"
|
||||
@printf "%s\n" "make rebuild-work-55: Build PHP 5.5 work image"
|
||||
@printf "%s\n" "make rebuild-work-56: Build PHP 5.6 work image"
|
||||
@printf "%s\n" "make rebuild-work-70: Build PHP 7.0 work image"
|
||||
@printf "%s\n" "make rebuild-work-71: Build PHP 7.1 work image"
|
||||
@printf "%s\n" "make rebuild-work-72: Build PHP 7.2 work image"
|
||||
@printf "%s\n" "make rebuild-work-73: Build PHP 7.3 work image"
|
||||
@printf "%s\n" "make rebuild-work-74: Build PHP 7.4 work image"
|
||||
@echo "lint Lint project files and repository"
|
||||
@echo
|
||||
@echo "build [ARCH=...] [TAG=...] Build Docker image"
|
||||
@echo "rebuild [ARCH=...] [TAG=...] Build Docker image without cache"
|
||||
@echo "push [ARCH=...] [TAG=...] Push Docker image to Docker hub"
|
||||
@echo
|
||||
@echo "manifest-create [ARCHES=...] [TAG=...] Create multi-arch manifest"
|
||||
@echo "manifest-push [TAG=...] Push multi-arch manifest"
|
||||
@echo
|
||||
@echo "test [ARCH=...] Test built Docker image"
|
||||
@echo
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Overwrite Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# Append additional target to lint
|
||||
lint: lint-changelog
|
||||
lint: lint-ansible
|
||||
|
||||
###
|
||||
### Generate
|
||||
### Ensures CHANGELOG has an entry
|
||||
###
|
||||
generate:
|
||||
cd build/ansible; ansible-playbook generate.yml --diff
|
||||
|
||||
.PHONY: lint-changelog
|
||||
lint-changelog:
|
||||
@echo "################################################################################"
|
||||
@echo "# Lint Changelog"
|
||||
@echo "################################################################################"
|
||||
@\
|
||||
GIT_CURR_MAJOR="$$( git tag | sort -V | tail -1 | sed 's|\.[0-9]*$$||g' )"; \
|
||||
GIT_CURR_MINOR="$$( git tag | sort -V | tail -1 | sed 's|^[0-9]*\.||g' )"; \
|
||||
GIT_NEXT_TAG="$${GIT_CURR_MAJOR}.$$(( GIT_CURR_MINOR + 1 ))"; \
|
||||
if ! grep -E "^## Release $${GIT_NEXT_TAG}$$" CHANGELOG.md >/dev/null; then \
|
||||
echo "[ERR] Missing '## Release $${GIT_NEXT_TAG}' section in CHANGELOG.md"; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "[OK] Section '## Release $${GIT_NEXT_TAG}' present in CHANGELOG.md"; \
|
||||
fi
|
||||
@echo
|
||||
|
||||
###
|
||||
### Update readme
|
||||
### Ensures Ansible Dockerfile generation is current
|
||||
###
|
||||
readme:
|
||||
cd build; ./gen-readme.sh
|
||||
.PHONY: lint-ansible
|
||||
lint-ansible: gen-dockerfiles
|
||||
@git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Docker Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# ---- ONLY FOR "mods" images ----
|
||||
# When builds mods, we have a builder image and then copy everything to the final
|
||||
# target image. In order to do so, we pass a build-arg EXT_DIR, which contains
|
||||
# the variable directory of extensions to copy.
|
||||
# The only way to "LAZY" fetch it, is by doing a call to the base image and populate
|
||||
# a Makefile variable with its value upon call.
|
||||
ifeq ($(strip $(STAGE)),mods)
|
||||
EXT_DIR=$$( docker run --rm --platform $(ARCH) --entrypoint=php $(IMAGE):$(BASE_TAG) -r \
|
||||
'echo ini_get("extension_dir");'\
|
||||
)
|
||||
endif
|
||||
|
||||
# Use Buldkit for building
|
||||
export DOCKER_BUILDKIT=1
|
||||
|
||||
.PHONY: build
|
||||
build: check-stage-is-set
|
||||
build: check-parent-image-exists
|
||||
build: ARGS+=--build-arg EXT_DIR=$(EXT_DIR)
|
||||
build: docker-arch-build
|
||||
|
||||
.PHONY: rebuild
|
||||
rebuild: check-stage-is-set
|
||||
rebuild: check-parent-image-exists
|
||||
rebuild: ARGS+=--build-arg EXT_DIR=$(EXT_DIR)
|
||||
rebuild: docker-arch-rebuild
|
||||
|
||||
.PHONY: push
|
||||
push: check-stage-is-set
|
||||
push: check-version-is-set
|
||||
push: docker-arch-push
|
||||
|
||||
.PHONY: tag
|
||||
tag: check-stage-is-set
|
||||
tag: check-version-is-set
|
||||
tag:
|
||||
docker tag $(IMAGE):$(VERSION)-$(STAGE) $(IMAGE):$(DOCKER_TAG)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Save / Load Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: save
|
||||
save: check-stage-is-set
|
||||
save: check-version-is-set
|
||||
save: check-current-image-exists
|
||||
save: docker-save
|
||||
|
||||
.PHONY: load
|
||||
load: docker-load
|
||||
|
||||
.PHONY: save-verify
|
||||
save-verify: save
|
||||
save-verify: load
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Manifest Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: manifest-create
|
||||
manifest-create: docker-manifest-create
|
||||
|
||||
.PHONY: manifest-push
|
||||
manifest-push: docker-manifest-push
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Test Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
.PHONY: test
|
||||
test: check-stage-is-set
|
||||
test: check-current-image-exists
|
||||
test: test-integration
|
||||
|
||||
.PHONY: test-integration
|
||||
test-integration:
|
||||
./tests/test.sh $(IMAGE) $(ARCH) $(VERSION) $(STAGE) $(DOCKER_TAG)
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Generate Targets
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Generate and build
|
||||
### Generate README (requires images to be built)
|
||||
###
|
||||
gen-build: generate build-all
|
||||
gen-rebuild: generate rebuild-all
|
||||
|
||||
|
||||
.PHONY: gen-readme
|
||||
gen-readme: check-version-is-set
|
||||
gen-readme:
|
||||
@echo "################################################################################"
|
||||
@echo "# Generate README.md for PHP $(VERSION) ($(IMAGE):$(DOCKER_TAG)) on $(ARCH)"
|
||||
@echo "################################################################################"
|
||||
./build/gen-readme.sh $(IMAGE) $(ARCH) $(BASE_TAG) $(MODS_TAG) $(VERSION)
|
||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||
|
||||
###
|
||||
### Build all
|
||||
### Generate Dockerfiles
|
||||
###
|
||||
build-all: build-base build-mods build-prod build-work
|
||||
rebuild-all: rebuild-base rebuild-mods rebuild-prod rebuild-work
|
||||
.PHONY: gen-dockerfiles
|
||||
gen-dockerfiles:
|
||||
docker run --rm \
|
||||
$$(tty -s && echo "-it" || echo) \
|
||||
-e USER=ansible \
|
||||
-e MY_UID=$$(id -u) \
|
||||
-e MY_GID=$$(id -g) \
|
||||
-v ${PWD}:/data \
|
||||
-w /data/build/ansible \
|
||||
cytopia/ansible:2.8-tools ansible-playbook generate.yml \
|
||||
-e ANSIBLE_STRATEGY_PLUGINS=/usr/lib/python3.8/site-packages/ansible_mitogen/plugins/strategy \
|
||||
-e ANSIBLE_STRATEGY=mitogen_linear \
|
||||
-e ansible_python_interpreter=/usr/bin/python3 \
|
||||
-e \"{build_fail_fast: $(FAIL_FAST)}\" \
|
||||
--diff $(ARGS)
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# HELPER TARGETS
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Build categories
|
||||
### Ensures the VERSION variable is set
|
||||
###
|
||||
build-base: build-base-52 build-base-53 build-base-54 build-base-55 build-base-56 build-base-70 build-base-71 build-base-72 build-base-73 build-base-74
|
||||
build-mods: build-mods-52 build-mods-53 build-mods-54 build-mods-55 build-mods-56 build-mods-70 build-mods-71 build-mods-72 build-mods-73 build-mods-74
|
||||
build-prod: build-prod-52 build-prod-53 build-prod-54 build-prod-55 build-prod-56 build-prod-70 build-prod-71 build-prod-72 build-prod-73 build-prod-74
|
||||
build-work: build-work-52 build-work-53 build-work-54 build-work-55 build-work-56 build-work-70 build-work-71 build-work-72 build-work-73 build-work-74
|
||||
|
||||
rebuild-base: rebuild-base-52 rebuild-base-53 rebuild-base-54 rebuild-base-55 rebuild-base-56 rebuild-base-70 rebuild-base-71 rebuild-base-72 rebuild-base-73 rebuild-base-74
|
||||
rebuild-mods: rebuild-mods-52 rebuild-mods-53 rebuild-mods-54 rebuild-mods-55 rebuild-mods-56 rebuild-mods-70 rebuild-mods-71 rebuild-mods-72 rebuild-mods-73 rebuild-mods-74
|
||||
rebuild-prod: rebuild-prod-52 rebuild-prod-53 rebuild-prod-54 rebuild-prod-55 rebuild-prod-56 rebuild-prod-70 rebuild-prod-71 rebuild-prod-72 rebuild-prod-73 rebuild-prod-74
|
||||
rebuild-work: rebuild-work-52 rebuild-work-53 rebuild-work-54 rebuild-work-55 rebuild-work-56 rebuild-work-70 rebuild-work-71 rebuild-work-72 rebuild-work-73 rebuild-work-74
|
||||
|
||||
|
||||
.PHONY: check-version-is-set
|
||||
check-version-is-set:
|
||||
@if [ "$(VERSION)" = "" ]; then \
|
||||
echo "This make target requires the VERSION variable to be set."; \
|
||||
echo "make <target> VERSION="; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Build separately
|
||||
### Ensures the STAGE variable is set
|
||||
###
|
||||
build-base-52: pull-from-52
|
||||
docker build -t devilbox/php-fpm:5.2-base -f $(location)/base/Dockerfile-5.2 $(location)/base
|
||||
build-base-53: pull-from-53
|
||||
docker build -t devilbox/php-fpm:5.3-base -f $(location)/base/Dockerfile-5.3 $(location)/base
|
||||
build-base-54: pull-from-54
|
||||
docker build -t devilbox/php-fpm:5.4-base -f $(location)/base/Dockerfile-5.4 $(location)/base
|
||||
build-base-55: pull-from-55
|
||||
docker build -t devilbox/php-fpm:5.5-base -f $(location)/base/Dockerfile-5.5 $(location)/base
|
||||
build-base-56: pull-from-56
|
||||
docker build -t devilbox/php-fpm:5.6-base -f $(location)/base/Dockerfile-5.6 $(location)/base
|
||||
build-base-70: pull-from-70
|
||||
docker build -t devilbox/php-fpm:7.0-base -f $(location)/base/Dockerfile-7.0 $(location)/base
|
||||
build-base-71: pull-from-71
|
||||
docker build -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
|
||||
build-base-72: pull-from-72
|
||||
docker build -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
|
||||
build-base-73: pull-from-73
|
||||
docker build -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
|
||||
build-base-74: pull-from-74
|
||||
docker build -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
|
||||
|
||||
build-mods-52:
|
||||
docker build -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
|
||||
build-mods-53:
|
||||
docker build -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
|
||||
build-mods-54:
|
||||
docker build -t devilbox/php-fpm:5.4-mods -f $(location)/mods/Dockerfile-5.4 $(location)/mods
|
||||
build-mods-55:
|
||||
docker build -t devilbox/php-fpm:5.5-mods -f $(location)/mods/Dockerfile-5.5 $(location)/mods
|
||||
build-mods-56:
|
||||
docker build -t devilbox/php-fpm:5.6-mods -f $(location)/mods/Dockerfile-5.6 $(location)/mods
|
||||
build-mods-70:
|
||||
docker build -t devilbox/php-fpm:7.0-mods -f $(location)/mods/Dockerfile-7.0 $(location)/mods
|
||||
build-mods-71:
|
||||
docker build -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
|
||||
build-mods-72:
|
||||
docker build -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
|
||||
build-mods-73:
|
||||
docker build -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
|
||||
build-mods-74:
|
||||
docker build -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
|
||||
|
||||
build-prod-52:
|
||||
docker build -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
|
||||
build-prod-53:
|
||||
docker build -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
|
||||
build-prod-54:
|
||||
docker build -t devilbox/php-fpm:5.4-prod -f $(location)/prod/Dockerfile-5.4 $(location)/prod
|
||||
build-prod-55:
|
||||
docker build -t devilbox/php-fpm:5.5-prod -f $(location)/prod/Dockerfile-5.5 $(location)/prod
|
||||
build-prod-56:
|
||||
docker build -t devilbox/php-fpm:5.6-prod -f $(location)/prod/Dockerfile-5.6 $(location)/prod
|
||||
build-prod-70:
|
||||
docker build -t devilbox/php-fpm:7.0-prod -f $(location)/prod/Dockerfile-7.0 $(location)/prod
|
||||
build-prod-71:
|
||||
docker build -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
|
||||
build-prod-72:
|
||||
docker build -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
|
||||
build-prod-73:
|
||||
docker build -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
|
||||
build-prod-74:
|
||||
docker build -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
|
||||
|
||||
build-work-52:
|
||||
docker build -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
|
||||
build-work-53:
|
||||
docker build -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
|
||||
build-work-54:
|
||||
docker build -t devilbox/php-fpm:5.4-work -f $(location)/work/Dockerfile-5.4 $(location)/work
|
||||
build-work-55:
|
||||
docker build -t devilbox/php-fpm:5.5-work -f $(location)/work/Dockerfile-5.5 $(location)/work
|
||||
build-work-56:
|
||||
docker build -t devilbox/php-fpm:5.6-work -f $(location)/work/Dockerfile-5.6 $(location)/work
|
||||
build-work-70:
|
||||
docker build -t devilbox/php-fpm:7.0-work -f $(location)/work/Dockerfile-7.0 $(location)/work
|
||||
build-work-71:
|
||||
docker build -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
|
||||
build-work-72:
|
||||
docker build -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
|
||||
build-work-73:
|
||||
docker build -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
|
||||
build-work-74:
|
||||
docker build -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
|
||||
|
||||
|
||||
.PHONY: check-stage-is-set
|
||||
check-stage-is-set:
|
||||
@if [ "$(STAGE)" = "" ]; then \
|
||||
echo "This make target requires the STAGE variable to be set."; \
|
||||
echo "make <target> STAGE="; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$(STAGE)" != "base" ] && [ "$(STAGE)" != "mods" ] && [ "$(STAGE)" != "prod" ] && [ "$(STAGE)" != "work" ]; then \
|
||||
echo "Error, Flavour can only be one of 'base', 'mods', 'prod', or 'work'."; \
|
||||
echo "Exiting."; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Rebuild separately
|
||||
### Checks if current image exists and is of correct architecture
|
||||
###
|
||||
rebuild-base-52: pull-from-52
|
||||
docker build --no-cache -t devilbox/php-fpm:5.2-base -f $(location)/base/Dockerfile-5.2 $(location)/base
|
||||
rebuild-base-53: pull-from-53
|
||||
docker build --no-cache -t devilbox/php-fpm:5.3-base -f $(location)/base/Dockerfile-5.3 $(location)/base
|
||||
rebuild-base-54: pull-from-54
|
||||
docker build --no-cache -t devilbox/php-fpm:5.4-base -f $(location)/base/Dockerfile-5.4 $(location)/base
|
||||
rebuild-base-55: pull-from-55
|
||||
docker build --no-cache -t devilbox/php-fpm:5.5-base -f $(location)/base/Dockerfile-5.5 $(location)/base
|
||||
rebuild-base-56: pull-from-56
|
||||
docker build --no-cache -t devilbox/php-fpm:5.6-base -f $(location)/base/Dockerfile-5.6 $(location)/base
|
||||
rebuild-base-70: pull-from-70
|
||||
docker build --no-cache -t devilbox/php-fpm:7.0-base -f $(location)/base/Dockerfile-7.0 $(location)/base
|
||||
rebuild-base-71: pull-from-71
|
||||
docker build --no-cache -t devilbox/php-fpm:7.1-base -f $(location)/base/Dockerfile-7.1 $(location)/base
|
||||
rebuild-base-72: pull-from-72
|
||||
docker build --no-cache -t devilbox/php-fpm:7.2-base -f $(location)/base/Dockerfile-7.2 $(location)/base
|
||||
rebuild-base-73: pull-from-73
|
||||
docker build --no-cache -t devilbox/php-fpm:7.3-base -f $(location)/base/Dockerfile-7.3 $(location)/base
|
||||
rebuild-base-74: pull-from-74
|
||||
docker build --no-cache -t devilbox/php-fpm:7.4-base -f $(location)/base/Dockerfile-7.4 $(location)/base
|
||||
|
||||
rebuild-mods-52:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.2-mods -f $(location)/mods/Dockerfile-5.2 $(location)/mods
|
||||
rebuild-mods-53:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.3-mods -f $(location)/mods/Dockerfile-5.3 $(location)/mods
|
||||
rebuild-mods-54:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.4-mods -f $(location)/mods/Dockerfile-5.4 $(location)/mods
|
||||
rebuild-mods-55:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.5-mods -f $(location)/mods/Dockerfile-5.5 $(location)/mods
|
||||
rebuild-mods-56:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.6-mods -f $(location)/mods/Dockerfile-5.6 $(location)/mods
|
||||
rebuild-mods-70:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.0-mods -f $(location)/mods/Dockerfile-7.0 $(location)/mods
|
||||
rebuild-mods-71:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.1-mods -f $(location)/mods/Dockerfile-7.1 $(location)/mods
|
||||
rebuild-mods-72:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.2-mods -f $(location)/mods/Dockerfile-7.2 $(location)/mods
|
||||
rebuild-mods-73:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.3-mods -f $(location)/mods/Dockerfile-7.3 $(location)/mods
|
||||
rebuild-mods-74:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.4-mods -f $(location)/mods/Dockerfile-7.4 $(location)/mods
|
||||
|
||||
rebuild-prod-52:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.2-prod -f $(location)/prod/Dockerfile-5.2 $(location)/prod
|
||||
rebuild-prod-53:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.3-prod -f $(location)/prod/Dockerfile-5.3 $(location)/prod
|
||||
rebuild-prod-54:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.4-prod -f $(location)/prod/Dockerfile-5.4 $(location)/prod
|
||||
rebuild-prod-55:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.5-prod -f $(location)/prod/Dockerfile-5.5 $(location)/prod
|
||||
rebuild-prod-56:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.6-prod -f $(location)/prod/Dockerfile-5.6 $(location)/prod
|
||||
rebuild-prod-70:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.0-prod -f $(location)/prod/Dockerfile-7.0 $(location)/prod
|
||||
rebuild-prod-71:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.1-prod -f $(location)/prod/Dockerfile-7.1 $(location)/prod
|
||||
rebuild-prod-72:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.2-prod -f $(location)/prod/Dockerfile-7.2 $(location)/prod
|
||||
rebuild-prod-73:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.3-prod -f $(location)/prod/Dockerfile-7.3 $(location)/prod
|
||||
rebuild-prod-74:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.4-prod -f $(location)/prod/Dockerfile-7.4 $(location)/prod
|
||||
|
||||
rebuild-work-52:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.2-work -f $(location)/work/Dockerfile-5.2 $(location)/work
|
||||
rebuild-work-53:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.3-work -f $(location)/work/Dockerfile-5.3 $(location)/work
|
||||
rebuild-work-54:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.4-work -f $(location)/work/Dockerfile-5.4 $(location)/work
|
||||
rebuild-work-55:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.5-work -f $(location)/work/Dockerfile-5.5 $(location)/work
|
||||
rebuild-work-56:
|
||||
docker build --no-cache -t devilbox/php-fpm:5.6-work -f $(location)/work/Dockerfile-5.6 $(location)/work
|
||||
rebuild-work-70:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.0-work -f $(location)/work/Dockerfile-7.0 $(location)/work
|
||||
rebuild-work-71:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.1-work -f $(location)/work/Dockerfile-7.1 $(location)/work
|
||||
rebuild-work-72:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.2-work -f $(location)/work/Dockerfile-7.2 $(location)/work
|
||||
rebuild-work-73:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.3-work -f $(location)/work/Dockerfile-7.3 $(location)/work
|
||||
rebuild-work-74:
|
||||
docker build --no-cache -t devilbox/php-fpm:7.4-work -f $(location)/work/Dockerfile-7.4 $(location)/work
|
||||
|
||||
|
||||
.PHONY: check-current-image-exists
|
||||
check-current-image-exists: check-stage-is-set
|
||||
check-current-image-exists:
|
||||
@if [ "$$( docker images -q $(IMAGE):$(DOCKER_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(DOCKER_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "OK: Image $(IMAGE):$(DOCKER_TAG) exists"; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(DOCKER_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(DOCKER_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(DOCKER_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "OK: Image $(IMAGE):$(DOCKER_TAG) is of arch $${OS}/$${ARCH}"; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Pull base FROM images
|
||||
### Checks if parent image exists and is of correct architecture
|
||||
###
|
||||
pull-from-52:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.2 | sed 's/^FROM\s*//g';)
|
||||
pull-from-53:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.3 | sed 's/^FROM\s*//g';)
|
||||
pull-from-54:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.4 | sed 's/^FROM\s*//g';)
|
||||
pull-from-55:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.5 | sed 's/^FROM\s*//g';)
|
||||
pull-from-56:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-5.6 | sed 's/^FROM\s*//g';)
|
||||
pull-from-70:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.0 | sed 's/^FROM\s*//g';)
|
||||
pull-from-71:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.1 | sed 's/^FROM\s*//g';)
|
||||
pull-from-72:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.2 | sed 's/^FROM\s*//g';)
|
||||
pull-from-73:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.3 | sed 's/^FROM\s*//g';)
|
||||
pull-from-74:
|
||||
docker pull $(shell grep FROM $(location)/base/Dockerfile-7.4 | sed 's/^FROM\s*//g';)
|
||||
|
||||
|
||||
###
|
||||
### Test all
|
||||
###
|
||||
test-all: test-base test-mods test-prod test-work
|
||||
|
||||
test-base: test-base-52 test-base-53 test-base-54 test-base-55 test-base-56 test-base-70 test-base-71 test-base-72 test-base-73 test-base-74
|
||||
test-mods: test-mods-52 test-mods-53 test-mods-54 test-mods-55 test-mods-56 test-mods-70 test-mods-71 test-mods-72 test-mods-73 test-mods-74
|
||||
test-prod: test-prod-52 test-prod-53 test-prod-54 test-prod-55 test-prod-56 test-prod-70 test-prod-71 test-prod-72 test-prod-73 test-prod-74
|
||||
test-work: test-work-52 test-work-53 test-work-54 test-work-55 test-work-56 test-work-70 test-work-71 test-work-72 test-work-73 test-work-74
|
||||
|
||||
|
||||
###
|
||||
### Tests
|
||||
###
|
||||
test-base-52:
|
||||
./tests/test.sh 5.2 base
|
||||
test-base-53:
|
||||
./tests/test.sh 5.3 base
|
||||
test-base-54:
|
||||
./tests/test.sh 5.4 base
|
||||
test-base-55:
|
||||
./tests/test.sh 5.5 base
|
||||
test-base-56:
|
||||
./tests/test.sh 5.6 base
|
||||
test-base-70:
|
||||
./tests/test.sh 7.0 base
|
||||
test-base-71:
|
||||
./tests/test.sh 7.1 base
|
||||
test-base-72:
|
||||
./tests/test.sh 7.2 base
|
||||
test-base-73:
|
||||
./tests/test.sh 7.3 base
|
||||
test-base-74:
|
||||
./tests/test.sh 7.4 base
|
||||
|
||||
test-mods-52:
|
||||
./tests/test.sh 5.2 mods
|
||||
test-mods-53:
|
||||
./tests/test.sh 5.3 mods
|
||||
test-mods-54:
|
||||
./tests/test.sh 5.4 mods
|
||||
test-mods-55:
|
||||
./tests/test.sh 5.5 mods
|
||||
test-mods-56:
|
||||
./tests/test.sh 5.6 mods
|
||||
test-mods-70:
|
||||
./tests/test.sh 7.0 mods
|
||||
test-mods-71:
|
||||
./tests/test.sh 7.1 mods
|
||||
test-mods-72:
|
||||
./tests/test.sh 7.2 mods
|
||||
test-mods-73:
|
||||
./tests/test.sh 7.3 mods
|
||||
test-mods-74:
|
||||
./tests/test.sh 7.4 mods
|
||||
|
||||
test-prod-52:
|
||||
./tests/test.sh 5.2 prod
|
||||
test-prod-53:
|
||||
./tests/test.sh 5.3 prod
|
||||
test-prod-54:
|
||||
./tests/test.sh 5.4 prod
|
||||
test-prod-55:
|
||||
./tests/test.sh 5.5 prod
|
||||
test-prod-56:
|
||||
./tests/test.sh 5.6 prod
|
||||
test-prod-70:
|
||||
./tests/test.sh 7.0 prod
|
||||
test-prod-71:
|
||||
./tests/test.sh 7.1 prod
|
||||
test-prod-72:
|
||||
./tests/test.sh 7.2 prod
|
||||
test-prod-73:
|
||||
./tests/test.sh 7.3 prod
|
||||
test-prod-74:
|
||||
./tests/test.sh 7.4 prod
|
||||
|
||||
test-work-52:
|
||||
./tests/test.sh 5.2 work
|
||||
test-work-53:
|
||||
./tests/test.sh 5.3 work
|
||||
test-work-54:
|
||||
./tests/test.sh 5.4 work
|
||||
test-work-55:
|
||||
./tests/test.sh 5.5 work
|
||||
test-work-56:
|
||||
./tests/test.sh 5.6 work
|
||||
test-work-70:
|
||||
./tests/test.sh 7.0 work
|
||||
test-work-71:
|
||||
./tests/test.sh 7.1 work
|
||||
test-work-72:
|
||||
./tests/test.sh 7.2 work
|
||||
test-work-73:
|
||||
./tests/test.sh 7.3 work
|
||||
test-work-74:
|
||||
./tests/test.sh 7.4 work
|
||||
.PHONY: check-parent-image-exists
|
||||
check-parent-image-exists: check-stage-is-set
|
||||
check-parent-image-exists:
|
||||
@if [ "$(STAGE)" = "work" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(PROD_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(PROD_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(PROD_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(PROD_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(PROD_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
elif [ "$(STAGE)" = "prod" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(MODS_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(MODS_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(MODS_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(MODS_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(MODS_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
elif [ "$(STAGE)" = "mods" ]; then \
|
||||
if [ "$$( docker images -q $(IMAGE):$(BASE_TAG) )" = "" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(BASE_TAG)' was not found locally."; \
|
||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
||||
>&2 echo "This is a safeguard to not automatically pull the Docker image."; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
OS="$$( docker image inspect $(IMAGE):$(BASE_TAG) --format '{{.Os}}' )"; \
|
||||
ARCH="$$( docker image inspect $(IMAGE):$(BASE_TAG) --format '{{.Architecture}}' )"; \
|
||||
if [ "$${OS}/$${ARCH}" != "$(ARCH)" ]; then \
|
||||
>&2 echo "Docker image '$(IMAGE):$(BASE_TAG)' has invalid architecture: $${OS}/$${ARCH}"; \
|
||||
>&2 echo "Expected: $(ARCH)"; \
|
||||
>&2 echo; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
fi;
|
||||
|
||||
259
README.md
259
README.md
@@ -1,21 +1,72 @@
|
||||
# PHP-FPM Docker images
|
||||
|
||||
[](https://travis-ci.org/devilbox/docker-php-fpm)
|
||||
[](https://github.com/devilbox/docker-php-fpm/releases)
|
||||
[](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://github.com/devilbox/docker-php-fpm)
|
||||
[](https://microbadger.com/images/devilbox/php-fpm "php-fpm")
|
||||
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=lint)
|
||||
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=build)
|
||||
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
|
||||
[](https://github.com/devilbox/docker-php-fpm/releases)
|
||||
[](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://devilbox.discourse.group)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
**[devilbox/docker-php-fpm](https://github.com/devilbox/docker-php-fpm)**
|
||||
|
||||
**Available Architectures:** `amd64`, `arm64`
|
||||
|
||||
This repository will provide you fully functional PHP-FPM Docker images in different flavours,
|
||||
versions and packed with different types of integrated PHP modules. It also solves the problem of [syncronizing file permissions](#unsynchronized-permissions) of mounted volumes between the host and the container.
|
||||
versions and packed with different types of integrated PHP modules. It also solves the problem of **[syncronizing file permissions](#unsynchronized-permissions)** of mounted volumes between the host and the container.
|
||||
|
||||
| Docker Hub | Upstream Project |
|
||||
|------------|------------------|
|
||||
| <a href="https://hub.docker.com/r/devilbox/php-fpm"><img height="82px" src="http://dockeri.co/image/devilbox/php-fpm" /></a> | <a href="https://github.com/cytopia/devilbox" ><img height="82px" src="https://raw.githubusercontent.com/devilbox/artwork/master/submissions_banner/cytopia/01/png/banner_256_trans.png" /></a> |
|
||||
|
||||
---
|
||||
#### Base Images
|
||||
|
||||
Have a look at the following Devilbox base images for which no official versions exist yet, but are required to serve as a foundation for this repository:
|
||||
|
||||
* [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2)
|
||||
* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3)
|
||||
* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4)
|
||||
* [PHP-FPM 8.0](https://github.com/devilbox/docker-php-fpm-8.0)
|
||||
* [PHP-FPM 8.1](https://github.com/devilbox/docker-php-fpm-8.1)
|
||||
* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2)
|
||||
|
||||
#### Documentation
|
||||
|
||||
In case you seek help, go and visit the community pages.
|
||||
|
||||
<table width="100%" style="width:100%; display:table;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">Documentation</a></h3></th>
|
||||
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://gitter.im/devilbox/Lobby">Chat</a></h3></th>
|
||||
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://devilbox.discourse.group">Forum</a></h3></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody style="vertical-align: middle; text-align: center;">
|
||||
<tr>
|
||||
<td>
|
||||
<a target="_blank" href="https://devilbox.readthedocs.io">
|
||||
<img title="Documentation" name="Documentation" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/readthedocs.png" />
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://gitter.im/devilbox/Lobby">
|
||||
<img title="Chat on Gitter" name="Chat on Gitter" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/gitter.png" />
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://devilbox.discourse.group">
|
||||
<img title="Devilbox Forums" name="Forum" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/discourse.png" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://devilbox.readthedocs.io">devilbox.readthedocs.io</a></td>
|
||||
<td><a target="_blank" href="https://gitter.im/devilbox/Lobby">gitter.im/devilbox</a></td>
|
||||
<td><a target="_blank" href="https://devilbox.discourse.group">devilbox.discourse.group</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
#### Table of Contents
|
||||
|
||||
@@ -173,7 +224,7 @@ The following table shows a more complete overview about the offered Docker imag
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<td rowspan="10"><strong>base</strong></td>
|
||||
<td rowspan="13"><strong>base</strong></td>
|
||||
<td><code>devilbox/php-fpm:5.2-base</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-base.svg" /></a>
|
||||
@@ -242,9 +293,30 @@ The following table shows a more complete overview about the offered Docker imag
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-base.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.0-base</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.0-base.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-base.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.1-base</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-base.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-base.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.2-base</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.2-base.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.2-base.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td rowspan="10"><strong>mods</strong></td>
|
||||
<td rowspan="13"><strong>mods</strong></td>
|
||||
<td><code>devilbox/php-fpm:5.2-mods</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-mods.svg" /></a>
|
||||
@@ -314,9 +386,30 @@ The following table shows a more complete overview about the offered Docker imag
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-mods.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.0-mods</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.0-mods.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-mods.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.1-mods</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-mods.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-mods.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.2-mods</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.2-mods.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.2-mods.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td rowspan="10"><strong>prod</strong></td>
|
||||
<td rowspan="13"><strong>prod</strong></td>
|
||||
<td><code>devilbox/php-fpm:5.2-prod</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-prod.svg" /></a>
|
||||
@@ -386,9 +479,30 @@ The following table shows a more complete overview about the offered Docker imag
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-prod.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.0-prod</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.0-prod.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-prod.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.1-prod</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-prod.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-prod.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.2-prod</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.2-prod.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.2-prod.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td rowspan="10"><strong>work</strong></td>
|
||||
<td rowspan="13"><strong>work</strong></td>
|
||||
<td><code>devilbox/php-fpm:5.2-work</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:5.2-work.svg" /></a>
|
||||
@@ -458,6 +572,27 @@ The following table shows a more complete overview about the offered Docker imag
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:7.4-work.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.0-work</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.0-work.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.0-work.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.1-work</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.1-work.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.1-work.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>devilbox/php-fpm:8.2-work</code></td>
|
||||
<td>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/image/devilbox/php-fpm:8.2-work.svg" /></a>
|
||||
<a href="https://microbadger.com/images/devilbox/php-fpm"><img src="https://images.microbadger.com/badges/version/devilbox/php-fpm:8.2-work.svg" /></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -525,53 +660,68 @@ Check out this table to see which Docker image provides what PHP modules.
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>5.2</th>
|
||||
<td id="52-base">ctype, curl, date, dom, filter, hash, iconv, json, libxml, mbstring, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, posix, readline, Reflection, session, SimpleXML, soap, SPL, SQLite, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="52-mods">amqp, bcmath, bz2, calendar, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, igbinary, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, msgpack, mysql, mysqli, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="52-base">ctype, curl, date, dom, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, openssl, pcre, PDO, pdo_sqlite, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="52-mods">amqp, bcmath, bz2, calendar, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, msgpack, mysql, mysqli, OAuth, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5.3</th>
|
||||
<td id="53-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysql, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="53-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="53-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, SQLite, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="53-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, SQLite, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5.4</th>
|
||||
<td id="54-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, hash, iconv, json, libxml, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="54-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="54-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="54-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5.5</th>
|
||||
<td id="55-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="55-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="55-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, recode, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="55-mods">amqp, apc, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>5.6</th>
|
||||
<td id="56-base">Core, ctype, curl, date, dom, ereg, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mhash, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="56-mods">amqp, apc, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="56-mods">amqp, apc, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mhash, mongo, mongodb, msgpack, mysql, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7.0</th>
|
||||
<td id="70-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="70-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="70-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7.1</th>
|
||||
<td id="71-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="71-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="71-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7.2</th>
|
||||
<td id="72-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="72-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="72-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7.3</th>
|
||||
<td id="73-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="73-mods">apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, msgpack, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="73-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>7.4</th>
|
||||
<td id="74-base">Core, ctype, curl, date, dom, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="74-mods">bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, interbase, intl, json, ldap, libxml, mbstring, memcached, mongodb, mysqli, mysqlnd, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, rdkafka, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib</td>
|
||||
<td id="74-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, phalcon, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, ssh2, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>8.0</th>
|
||||
<td id="80-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="80-mods">amqp, apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>8.1</th>
|
||||
<td id="81-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="81-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, sqlsrv, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, vips, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>8.2</th>
|
||||
<td id="82-base">Core, ctype, curl, date, dom, FFI, fileinfo, filter, ftp, hash, iconv, json, libxml, mbstring, mysqlnd, openssl, pcre, PDO, pdo_sqlite, Phar, posix, readline, Reflection, session, SimpleXML, sodium, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zlib</td>
|
||||
<td id="82-mods">amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, pspell, psr, rdkafka, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, uuid, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, zlib</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -592,6 +742,9 @@ docker pull devilbox/php-fpm:7.1-base
|
||||
docker pull devilbox/php-fpm:7.2-base
|
||||
docker pull devilbox/php-fpm:7.3-base
|
||||
docker pull devilbox/php-fpm:7.4-base
|
||||
docker pull devilbox/php-fpm:8.0-base
|
||||
docker pull devilbox/php-fpm:8.1-base
|
||||
docker pull devilbox/php-fpm:8.2-base
|
||||
```
|
||||
|
||||
Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub>
|
||||
@@ -608,6 +761,9 @@ docker pull devilbox/php-fpm:7.1-mods
|
||||
docker pull devilbox/php-fpm:7.2-mods
|
||||
docker pull devilbox/php-fpm:7.3-mods
|
||||
docker pull devilbox/php-fpm:7.4-mods
|
||||
docker pull devilbox/php-fpm:8.0-mods
|
||||
docker pull devilbox/php-fpm:8.1-mods
|
||||
docker pull devilbox/php-fpm:8.2-mods
|
||||
```
|
||||
|
||||
Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.<br/><br/><sub>(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`)</sub></td>
|
||||
@@ -624,6 +780,9 @@ docker pull devilbox/php-fpm:7.1-prod
|
||||
docker pull devilbox/php-fpm:7.2-prod
|
||||
docker pull devilbox/php-fpm:7.3-prod
|
||||
docker pull devilbox/php-fpm:7.4-prod
|
||||
docker pull devilbox/php-fpm:8.0-prod
|
||||
docker pull devilbox/php-fpm:8.1-prod
|
||||
docker pull devilbox/php-fpm:8.2-prod
|
||||
```
|
||||
|
||||
Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting.
|
||||
@@ -640,6 +799,9 @@ docker pull devilbox/php-fpm:7.1-work
|
||||
docker pull devilbox/php-fpm:7.2-work
|
||||
docker pull devilbox/php-fpm:7.3-work
|
||||
docker pull devilbox/php-fpm:7.4-work
|
||||
docker pull devilbox/php-fpm:8.0-work
|
||||
docker pull devilbox/php-fpm:8.1-work
|
||||
docker pull devilbox/php-fpm:8.2-work
|
||||
```
|
||||
|
||||
Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](#integrated-development-environment) for more information about this.
|
||||
@@ -701,7 +863,7 @@ Have a look at the following table to see all supported environment variables fo
|
||||
<td><code>ENABLE_MODULES</code></td>
|
||||
<td>string</td>
|
||||
<td><code>''</code></td>
|
||||
<td>Comma separated list of PHP modules to enable, which are not enabled by default.<br/><strong>Example:</strong><br/><code>ENABLE_MODULES=blackfire, ioncube</code></td>
|
||||
<td>Comma separated list of PHP modules to enable, which are not enabled by default.<br/><strong>Example:</strong><br/><code>ENABLE_MODULES=blackfire, ioncube, psr, phalcon</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>DISABLE_MODULES</code></td>
|
||||
@@ -713,7 +875,7 @@ Have a look at the following table to see all supported environment variables fo
|
||||
<td><code>ENABLE_MAIL</code></td>
|
||||
<td>bool</td>
|
||||
<td><code>0</code></td>
|
||||
<td>Enable local email catch-all.<br/>Postfix will be configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.<br/>Value: <code>0</code> or <code>1</code></td>
|
||||
<td>Start local postfix with or without email catch-all.<br/><code>0</code>: Postfix service disabled.<br/><code>1</code>: Postfix service started normally.<br/><code>2</code>: Postfix service started configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.<br/>Value: <code>0</code>, <code>1</code> or <code>2</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>FORWARD_PORTS_TO_LOCALHOST</code></td>
|
||||
@@ -760,7 +922,7 @@ Have a look at the following table to see all offered volumes for each Docker im
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="7"><strong>prod</strong><br/><br/><strong>work</strong></td>
|
||||
<td rowspan="8"><strong>prod</strong><br/><br/><strong>work</strong></td>
|
||||
<td><code>/etc/php-custom.d</code></td>
|
||||
<td>Mount this directory into your host computer and add custom <code>\*.ini</code> files in order to alter php behaviour.</td>
|
||||
</tr>
|
||||
@@ -786,7 +948,11 @@ Have a look at the following table to see all offered volumes for each Docker im
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>/var/mail</code></td>
|
||||
<td>Emails caught be the postfix catch-all (<code>ENABLE_MAIL=1</code>) will be available in this directory.</td>
|
||||
<td>Emails caught be the postfix catch-all (<code>ENABLE_MAIL=2</code>) will be available in this directory.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>/etc/supervisor/custom.d</code></td>
|
||||
<td>Mount this directory into your host computer and add your own `*.conf` supervisor start-up files.<br/><br/>**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"></td>
|
||||
@@ -851,7 +1017,7 @@ If you plan to use the PHP-FPM image for development, hence being able to execut
|
||||
|
||||
The **work** Docker image has many common tools already installed which on one hand increases its image size, but on the other hand removes the necessity to install those tools locally.
|
||||
|
||||
You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by travis-ci it is assured that you are always at the latest version of your favorite dev tool.
|
||||
You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpcs` as well as many others, simply do it directly inside the container. As all Docker images are auto-built every night by GitHub Actions it is assured that you are always at the latest version of your favorite dev tool.
|
||||
|
||||
|
||||
#### What tools can you expect
|
||||
@@ -915,6 +1081,10 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
||||
<td><a href="https://gruntjs.com/">grunt</a></td>
|
||||
<td>Grunt command line JS tool.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://brew.sh/">Homebrew</a></td>
|
||||
<td>The Missing Package Manager for macOS (or Linux).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td>
|
||||
<td>Json command line linter.</td>
|
||||
@@ -931,10 +1101,6 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
||||
<td><a href="https://github.com/cytopia/linkcheck">linkcheck</a></td>
|
||||
<td>Search for URLs in files (optionally limited by extension) and validate their HTTP status code.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://linuxbrew.sh">linuxbrew</a></td>
|
||||
<td>The Homebrew package manager for Linux.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/markdownlint/markdownlint">mdl</a></td>
|
||||
<td>Markdown command line linter.</td>
|
||||
@@ -967,6 +1133,14 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
||||
<td><a href="https://github.com/squizlabs/PHP_CodeSniffer">phpcbf</a></td>
|
||||
<td>PHP Code Beautifier and Fixer.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/FriendsOfPHP/PHP-CS-Fixer">php-cs-fixer</a></td>
|
||||
<td>A tool to automatically fix PHP Coding Standards issues.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://phpmd.org">phpmd</a></td>
|
||||
<td>PHP Mess Detector.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://photoncms.com/resources/installing">photon</a></td>
|
||||
<td>Photon CMS cli.</td>
|
||||
@@ -976,7 +1150,7 @@ You want to use tools such as `git`, `drush`, `composer`, `npm`, `eslint`, `phpc
|
||||
<td>Sass CSS compiler.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/brigade/scss-lint">scss-lint</a></td>
|
||||
<td><a href="https://github.com/stylelint/stylelint">stylelint</a></td>
|
||||
<td>Sass/CSS command line linter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -1045,7 +1219,10 @@ $ docker run -d \
|
||||
```shell
|
||||
# Create config directory to be mounted with dummy configuration
|
||||
$ mkdir config
|
||||
# Xdebug 2
|
||||
$ echo "xdebug.enable = 1" > config/xdebug.ini
|
||||
# Xdebug 3
|
||||
$ echo "xdebug.mode = debug" > config/xdebug.ini
|
||||
|
||||
# Run container and mount it
|
||||
$ docker run -d \
|
||||
@@ -1097,12 +1274,12 @@ $ docker run -d \
|
||||
|
||||
#### Launch Postfix for mail-catching
|
||||
|
||||
Once you set `$ENABLE_MAIL=1`, all mails sent via any of your PHP applications no matter to which domain, are catched locally into the `devilbox` account. You can also mount the mail directory locally to hook in with mutt and read those mails.
|
||||
Once you set `$ENABLE_MAIL=2`, all mails sent via any of your PHP applications no matter to which domain, are catched locally into the `devilbox` account. You can also mount the mail directory locally to hook in with mutt and read those mails.
|
||||
```shell
|
||||
$ docker run -d \
|
||||
-p 127.0.0.1:9000:9000 \
|
||||
-v /tmp/mail:/var/mail \
|
||||
-e ENABLE_MAIL=1 \
|
||||
-e ENABLE_MAIL=2 \
|
||||
-t devilbox/php-fpm:7.2-prod
|
||||
```
|
||||
|
||||
@@ -1139,7 +1316,7 @@ $ docker run -d \
|
||||
-e MYSQL_BACKUP_USER=root \
|
||||
-e MYSQL_BACKUP_PASS=somepass \
|
||||
-e MYSQL_BACKUP_HOST=mysql \
|
||||
-v ~/backups:/shared/backsup \
|
||||
-v ~/backups:/shared/backups \
|
||||
--name php \
|
||||
-t devilbox/php-fpm:7.2-work
|
||||
|
||||
@@ -1149,9 +1326,9 @@ $ docker exec -it php mysqldump-secure
|
||||
|
||||
<h2><img id="automated-builds" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Automated builds</h2>
|
||||
|
||||
[](https://travis-ci.org/devilbox/docker-php-fpm)
|
||||
[](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)
|
||||
|
||||
Docker images are built and tested every night by **[travis-ci](https://travis-ci.org/devilbox/docker-php-fpm)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches.
|
||||
Docker images are built and tested every night by **[GitHub Actions](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches.
|
||||
|
||||
<h2><img id="contributing" width="20" src="https://github.com/devilbox/artwork/raw/master/submissions_logo/cytopia/01/png/logo_64_trans.png"> Contributing</h2>
|
||||
|
||||
|
||||
@@ -50,7 +50,13 @@ html_errors = {{ item.cfg[item.key].html_errors | default(item.cfg[
|
||||
|
||||
|
||||
; Xdebug settings
|
||||
xdebug.default_enable = {{ item.cfg[item.key].xdebug_default_enable | default(item.cfg[item.alt].xdebug_default_enable) }}
|
||||
xdebug.profiler_enable = {{ item.cfg[item.key].xdebug_profiler_enable | default(item.cfg[item.alt].xdebug_profiler_enable) }}
|
||||
xdebug.remote_enable = {{ item.cfg[item.key].xdebug_remote_enable | default(item.cfg[item.alt].xdebug_remote_enable) }}
|
||||
xdebug.remote_autostart = {{ item.cfg[item.key].xdebug_remote_autostart | default(item.cfg[item.alt].xdebug_remote_autostart) }}
|
||||
{% 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,18 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
||||
{{ 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 == 7.4 %}
|
||||
FROM devilbox/php-fpm-7.4
|
||||
{% 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 %}
|
||||
@@ -14,12 +22,20 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="{{ php_version }}-base" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-base"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-base"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-base"
|
||||
|
||||
|
||||
###
|
||||
@@ -35,7 +51,7 @@ ENV MY_USER="devilbox" \
|
||||
###
|
||||
### User/Group
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& groupadd -g ${MY_GID} -r ${MY_GROUP} \
|
||||
&& useradd -u ${MY_UID} -m -s /bin/bash -g ${MY_GROUP} ${MY_USER}
|
||||
|
||||
@@ -43,16 +59,18 @@ RUN set -x \
|
||||
###
|
||||
### Upgrade (install ps)
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
dpkg-dev \
|
||||
procps \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
###
|
||||
### Configure
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& rm -rf /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /usr/local/etc/php-fpm.d \
|
||||
&& mkdir -p /var/lib/php/session \
|
||||
@@ -75,7 +93,7 @@ COPY ./data/docker-entrypoint.d /docker-entrypoint.d
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -102,4 +120,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,24 +1,12 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead.
|
||||
FROM devilbox/php-fpm:{{ php_version }}-base
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
{{ edit_comment_mods }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
||||
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="{{ php_version }}-mods" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
|
||||
|
||||
###
|
||||
### Envs
|
||||
###
|
||||
ENV BUILD_DEPS \
|
||||
{# Loop over enabled build dependencies -#}
|
||||
{#
|
||||
###################################################################################################
|
||||
Loop over enabled build dependencies and gather build dependencies
|
||||
###################################################################################################
|
||||
#}
|
||||
{%- set build_deps = [] -%}
|
||||
{%- for ext in extensions_enabled -%}
|
||||
{#- Not disabled AND not already available by default -#}
|
||||
@@ -39,13 +27,326 @@ ENV BUILD_DEPS \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
###
|
||||
### Install
|
||||
###
|
||||
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 %}
|
||||
# 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/*
|
||||
|
||||
ENV RUN_DEPS \
|
||||
|
||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
###
|
||||
### Install and enable PHP modules
|
||||
###
|
||||
# Enable ffi if it exists
|
||||
RUN set -eux \
|
||||
&& if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \
|
||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||
fi
|
||||
|
||||
{# Loop over enabled extensions #}
|
||||
{% for ext in extensions_enabled %}
|
||||
{#-
|
||||
###############################################################################################
|
||||
# Not disabled AND not already enabled
|
||||
###############################################################################################
|
||||
-#}
|
||||
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||
# -------------------- Installing PHP Extension: {{ ext }} --------------------
|
||||
RUN set -eux \
|
||||
{#-
|
||||
# --------------------------------------------------------------------------------
|
||||
# PRE COMMAND
|
||||
# --------------------------------------------------------------------------------
|
||||
-#}
|
||||
{#- Version specific pre-command available? -#}
|
||||
{%- if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Version specific pre-command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['pre'] }} \
|
||||
{#- Generic pre-command available? -#}
|
||||
{%- elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
|
||||
{{- "\n\t" }}# Generic pre-command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['pre'] }} \
|
||||
{%- endif -%}
|
||||
{#-
|
||||
# --------------------------------------------------------------------------------
|
||||
# INSTALLATION (VERSION SPECIFIC)
|
||||
# --------------------------------------------------------------------------------
|
||||
#}
|
||||
{%- if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Installation: Version specific
|
||||
{#-
|
||||
# -------------------- 1.) Builtin --------------------
|
||||
-#}
|
||||
{%- if extensions_available[ext][php_version]['type'] == 'builtin' -%}
|
||||
{{- "\n\t" }}# Type: Built-in extension
|
||||
{%- 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 -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext][php_version]['type'] == 'pecl' -%}
|
||||
{{- "\n\t" }}# Type: PECL extension
|
||||
{%- if 'command' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Custom: Pecl command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{%- else -%}
|
||||
{{- "\n\t" }}# Default: Pecl command
|
||||
{{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Enabling
|
||||
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 3.) GIT --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext][php_version]['type'] == 'git' -%}
|
||||
{{- "\n\t" }}# Type: GIT extension
|
||||
{{- "\n\t" }}&& git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
|
||||
{{- "\n\t" }}&& cd /tmp/{{ ext }} \
|
||||
{%- if 'git_ref' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Custom: Branch
|
||||
{{- "\n\t" }}&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
|
||||
{%- endif -%}
|
||||
{%- if 'command' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Custom: Install command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{%- else -%}
|
||||
{{- "\n\t" }}# Default: Install command
|
||||
{{- "\n\t" }}&& phpize \
|
||||
{{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
|
||||
{{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
{{- "\n\t" }}&& make install \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Enabling
|
||||
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 4.) CUSTOM --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext][php_version]['type'] == 'custom' -%}
|
||||
{{- "\n\t" }}# Type: Custom extension
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{%- endif -%}
|
||||
{#-
|
||||
# --------------------------------------------------------------------------------
|
||||
# INSTALLATION (GENERIC)
|
||||
# --------------------------------------------------------------------------------
|
||||
#}
|
||||
{%- elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Installation: Generic
|
||||
{#-
|
||||
# -------------------- 1.) Builtin --------------------
|
||||
-#}
|
||||
{%- if extensions_available[ext]['all']['type'] == 'builtin' -%}
|
||||
{{- "\n\t" }}# Type: Built-in extension
|
||||
{%- if 'configure' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Custom: configure command
|
||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) PECL --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext]['all']['type'] == 'pecl' -%}
|
||||
{{- "\n\t" }}# Type: PECL extension
|
||||
{%- if 'command' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Custom: Pecl command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{%- else -%}
|
||||
{{- "\n\t" }}# Default: Pecl command
|
||||
{{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Enabling
|
||||
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 2.) GIT --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext]['all']['type'] == 'git' -%}
|
||||
{{- "\n\t" }}# Type: GIT extension
|
||||
{{- "\n\t" }}&& git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
|
||||
{{- "\n\t" }}&& cd /tmp/{{ ext }} \
|
||||
{%- if 'git_ref' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Custom: Branch
|
||||
{{- "\n\t" }}&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
|
||||
{%- endif -%}
|
||||
{%- if 'command' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Custom: Install command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{%- else -%}
|
||||
{{- "\n\t" }}# Default: Install command
|
||||
{{- "\n\t" }}&& phpize \
|
||||
{{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
|
||||
{{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
{{- "\n\t" }}&& make install \
|
||||
{%- endif -%}
|
||||
{{- "\n\t" }}# Enabling
|
||||
{{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \
|
||||
{#-
|
||||
# -------------------- 4.) CUSTOM --------------------
|
||||
-#}
|
||||
{%- elif extensions_available[ext]['all']['type'] == 'custom' -%}
|
||||
{{- "\n\t" }}# Type: Custom extension
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{#-
|
||||
# --------------------------------------------------------------------------------
|
||||
# POST COMMAND
|
||||
# --------------------------------------------------------------------------------
|
||||
-#}
|
||||
{#- Version specific post-command available? -#}
|
||||
{%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Version specific post-command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext][php_version]['post'] }} \
|
||||
{#- Generic post-command available? -#}
|
||||
{%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %}
|
||||
{{- "\n\t" }}# Generic post-command
|
||||
{{- "\n\t" }}&& {{ extensions_available[ext]['all']['post'] }} \
|
||||
{%- endif -%}
|
||||
{#- End of: Not disabled AND not already enabled -#}
|
||||
{%- endif -%}
|
||||
{#-
|
||||
###############################################################################################
|
||||
# Ensure modules that are not disabled have an appropriate ini directive and are loaded
|
||||
###############################################################################################
|
||||
-#}
|
||||
{%- if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) -%}
|
||||
{%- if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] -%}
|
||||
{{- "\n\t" }}# Activate: Version specific extension
|
||||
{{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \
|
||||
{{- "\n\t" }} echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \
|
||||
{{- "\n\t" }}fi \
|
||||
{%- elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] -%}
|
||||
{{- "\n\t" }}# Activate: Generic extension
|
||||
{{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \
|
||||
{{- "\n\t" }} echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \
|
||||
{{- "\n\t" }}fi \
|
||||
{%- endif -%}
|
||||
{%- endif %}
|
||||
{#-
|
||||
###############################################################################################
|
||||
# Test extensions
|
||||
###############################################################################################
|
||||
-#}
|
||||
{#- Not disabled #}
|
||||
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||
{%- if build_fail_fast -%}
|
||||
{{- "\n\t" }}# ---- Test extension ----
|
||||
{{- "\n\t" }}&& /usr/local/sbin/php-fpm --test \
|
||||
{{- "\n\t" }}\
|
||||
{{- "\n\t" }}&& (php -v 2>&1 1>/dev/null || true) \
|
||||
{{- "\n\t" }}&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
{{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
{{- "\n\t" }}&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
{{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
{{- "\n\t" }}\
|
||||
{{- "\n\t" }}&& (php-fpm -v 2>&1 1>/dev/null || true) \
|
||||
{{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
{{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
{{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
{{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
{{- "\n\t" }}\
|
||||
{%- if ext == 'opcache' -%}
|
||||
{{- "\n\t" }}&& php -m | grep -oiE '^Zend Opcache$' \
|
||||
{{- "\n\t" }}&& php-fpm -m | grep -oiE '^Zend Opcache$'
|
||||
{%- elif ext == 'readline' -%}
|
||||
{{- "\n\t" }}&& php -m | grep -oiE '^readline$'
|
||||
{%- elif ext not in ['blackfire', 'ioncube'] -%}
|
||||
{{- "\n\t" }}&& php -m | grep -oiE '^{{ ext }}$' \
|
||||
{{- "\n\t" }}&& php-fpm -m | grep -oiE '^{{ ext }}$'
|
||||
{%- else %}
|
||||
{{- "\n\t" }}&& true
|
||||
{%- endif %}
|
||||
{{- "\n\n\n" }}
|
||||
{%- else -%}
|
||||
{{- "\n\t" }}&& true{{ "\n\n\n" }}
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
|
||||
# Fix php.ini settings for enabled extensions
|
||||
RUN set -eux \
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/*
|
||||
|
||||
# Fix oracle dir for images that don't have oci installed
|
||||
RUN set -eux \
|
||||
&& mkdir -p /usr/lib/oracle/
|
||||
|
||||
# Shrink everything down
|
||||
RUN set -eux \
|
||||
&& (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)
|
||||
|
||||
|
||||
|
||||
{{ edit_comment_mods }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-base as final
|
||||
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 }}-mods"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-mods"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods"
|
||||
|
||||
|
||||
###
|
||||
### Install runtime libraries
|
||||
###
|
||||
RUN set -eux \
|
||||
&& 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 -%}
|
||||
@@ -69,140 +370,55 @@ ENV RUN_DEPS \
|
||||
{% for run_dep in run_deps | unique | sort %}
|
||||
{{ run_dep }} \
|
||||
{% endfor %}
|
||||
ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
${BUILD_DEPS} \
|
||||
\
|
||||
\
|
||||
{# Loop over enabled extensions #}
|
||||
{% for ext in extensions_enabled %}
|
||||
{# Not disabled AND not already enabled #}
|
||||
{% if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||
# ---- Installing PHP Extension: {{ ext }} ----
|
||||
{# ---------- Pre Command ---------- #}
|
||||
{# Version specific pre-command available? #}
|
||||
{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %}
|
||||
&& {{ extensions_available[ext][php_version]['pre'] }} \
|
||||
{# Generic pre-command available? #}
|
||||
{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %}
|
||||
&& {{ extensions_available[ext]['all']['pre'] }} \
|
||||
{% endif %}
|
||||
{# ---------- Installation (specific) ---------- #}
|
||||
{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %}
|
||||
{# ---- 1.) Builtin ---- #}
|
||||
{% if extensions_available[ext][php_version]['type'] == 'builtin' %}
|
||||
{% if 'configure' in extensions_available[ext][php_version] %}
|
||||
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
||||
{% endif %}
|
||||
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{# ---- 2.) PECL ---- #}
|
||||
{% elif extensions_available[ext][php_version]['type'] == 'pecl' %}
|
||||
{% if 'command' in extensions_available[ext][php_version] %}
|
||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{% else %}
|
||||
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \
|
||||
{% endif %}
|
||||
&& docker-php-ext-enable {{ ext }} \
|
||||
{# ---- 3.) GIT ---- #}
|
||||
{% elif extensions_available[ext][php_version]['type'] == 'git' %}
|
||||
&& git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \
|
||||
&& cd /tmp/{{ ext }} \
|
||||
{% if 'git_ref' in extensions_available[ext][php_version] %}
|
||||
&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \
|
||||
{% endif %}
|
||||
{% if 'command' in extensions_available[ext][php_version] %}
|
||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{% else %}
|
||||
&& phpize \
|
||||
&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
{% endif %}
|
||||
&& docker-php-ext-enable {{ ext }} \
|
||||
{# ---- 4.) CUSTOM ---- #}
|
||||
{% elif extensions_available[ext][php_version]['type'] == 'custom' %}
|
||||
&& {{ extensions_available[ext][php_version]['command'] }} \
|
||||
{% endif %}
|
||||
{# ---------- Installation (generic) ---------- #}
|
||||
{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %}
|
||||
{# ---- 1.) Builtin ---- #}
|
||||
{% if extensions_available[ext]['all']['type'] == 'builtin' %}
|
||||
{% if 'configure' in extensions_available[ext]['all'] %}
|
||||
&& /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||
{% endif %}
|
||||
&& /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
||||
{# ---- 2.) PECL ---- #}
|
||||
{% elif extensions_available[ext]['all']['type'] == 'pecl' %}
|
||||
{% if 'command' in extensions_available[ext]['all'] %}
|
||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{% else %}
|
||||
&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \
|
||||
{% endif %}
|
||||
&& docker-php-ext-enable {{ ext }} \
|
||||
{# ---- 3.) GIT ---- #}
|
||||
{% elif extensions_available[ext]['all']['type'] == 'git' %}
|
||||
&& git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \
|
||||
&& cd /tmp/{{ ext }} \
|
||||
{% if 'git_ref' in extensions_available[ext]['all'] %}
|
||||
&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \
|
||||
{% endif %}
|
||||
{% if 'command' in extensions_available[ext]['all'] %}
|
||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{% else %}
|
||||
&& phpize \
|
||||
&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \
|
||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
||||
&& make install \
|
||||
{% endif %}
|
||||
&& docker-php-ext-enable {{ ext }} \
|
||||
{# ---- 4.) CUSTOM ---- #}
|
||||
{% elif extensions_available[ext]['all']['type'] == 'custom' %}
|
||||
&& {{ extensions_available[ext]['all']['command'] }} \
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{# Only delete files for extensions we've actually installed, not those that were already available by default #}
|
||||
&& (rm -rf /usr/local/lib/php/test/{{ ext }} || true) \
|
||||
&& (rm -rf /usr/local/lib/php/doc/{{ ext }} || true) \
|
||||
\
|
||||
{% endif %}
|
||||
{# Ensure modules that are not disabled have an appropriate ini directive and are loaded #}
|
||||
{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %}
|
||||
{% if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] %}
|
||||
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
|
||||
{% elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] %}
|
||||
&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
&& chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \
|
||||
&& rm -rf /tmp/* \
|
||||
\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& update-ca-certificates \
|
||||
\
|
||||
&& (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 "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& update-ca-certificates
|
||||
|
||||
|
||||
###
|
||||
### 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 = {} -%}
|
||||
{% for ext in extensions_enabled %}
|
||||
{%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %}
|
||||
{#- Version specific post-command available? -#}
|
||||
{%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%}
|
||||
{{- post_commands.update({ext: extensions_available[ext][php_version]['post']}) -}}
|
||||
{#- Generic post-command available? -#}
|
||||
{%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %}
|
||||
{{- post_commands.update({ext: extensions_available[ext]['all']['post']}) -}}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{% if post_commands | length > 0 -%}
|
||||
RUN set -eux \
|
||||
{%- for ext in post_commands -%}
|
||||
{{- "\n\t" }}# ---------- {{ ext }} ----------
|
||||
{{- "\n\t" }}&& {{ post_commands[ext] }} \
|
||||
{%- endfor -%}
|
||||
{{- "\n\t" }}&& true{{- "\n\n\n" }}
|
||||
{%- endif -%}
|
||||
|
||||
|
||||
{% if debug %}
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -239,6 +455,13 @@ RUN set -x \
|
||||
|
||||
|
||||
{% endif %}
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -248,4 +471,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/local/sbin/php-fpm"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead.
|
||||
{{ edit_comment_prod }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-mods
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
@@ -6,21 +6,28 @@ MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="{{ php_version }}-prod" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-prod"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-prod"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
||||
|
||||
|
||||
###
|
||||
### Install
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
locales-all \
|
||||
postfix \
|
||||
postfix-pcre \
|
||||
@@ -28,24 +35,28 @@ RUN set -x \
|
||||
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 %}
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -79,7 +90,6 @@ VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
@@ -89,4 +99,5 @@ EXPOSE 9000
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
|
||||
@@ -1,17 +1,39 @@
|
||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||
{{ edit_comment_work }}
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
LABEL \
|
||||
name="cytopia's PHP-FPM {{ php_version }} Image" \
|
||||
image="devilbox/php-fpm" \
|
||||
tag="{{ php_version }}-work" \
|
||||
vendor="devilbox" \
|
||||
license="MIT"
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-work"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-work"
|
||||
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods.
|
||||
### NOTE: They will be removed at the very bottom
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
|
||||
###
|
||||
@@ -23,47 +45,43 @@ ENV BASH_PROFILE=".bashrc"
|
||||
###
|
||||
### Install Tools
|
||||
###
|
||||
RUN set -x \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg \
|
||||
{% for repo in apt_repositories_enabled -%}
|
||||
\
|
||||
{%- for repo in apt_repositories_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in apt_repositories_available[repo]) or (php_version not in apt_repositories_available[repo]['disabled']) -%}
|
||||
{#- Version specific pre-command available? -#}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] %}
|
||||
&& {{ apt_repositories_available[repo][php_version]['pre'] }} \
|
||||
{# #}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo][php_version] -%}
|
||||
{{ "\n\t" }}&& {{ apt_repositories_available[repo][php_version]['pre'] }} \
|
||||
{#- Generic pre-command available? -#}
|
||||
{%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] %}
|
||||
&& {{ apt_repositories_available[repo]['all']['pre'] }} \
|
||||
{# #}
|
||||
{%- elif 'all' in apt_repositories_available[repo] and 'pre' in apt_repositories_available[repo]['all'] -%}
|
||||
{{ "\n\t" }}&& {{ apt_repositories_available[repo]['all']['pre'] }} \
|
||||
{%- endif -%}
|
||||
{#- Version specific key available? -#}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] %}
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \
|
||||
{# #}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo][php_version] -%}
|
||||
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo][php_version]['key'] }} \
|
||||
{#- Generic key available? -#}
|
||||
{%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] %}
|
||||
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \
|
||||
{# #}
|
||||
{%- elif 'all' in apt_repositories_available[repo] and 'key' in apt_repositories_available[repo]['all'] -%}
|
||||
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ apt_repositories_available[repo]['all']['key'] }} \
|
||||
{%- endif -%}
|
||||
{#- Version specific repository available? -#}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] %}
|
||||
&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{# #}
|
||||
{%- if php_version in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo][php_version] -%}
|
||||
{{ "\n\t" }}&& echo "{{ apt_repositories_available[repo][php_version]['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{#- Generic repository available? -#}
|
||||
{%- else %}
|
||||
&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{# #}
|
||||
{%- elif 'all' in apt_repositories_available[repo] and 'deb' in apt_repositories_available[repo]['all'] -%}
|
||||
{{ "\n\t" }}&& echo "{{ apt_repositories_available[repo]['all']['deb'] }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
ack-grep \
|
||||
aspell \
|
||||
autoconf \
|
||||
@@ -73,6 +91,9 @@ RUN set -x \
|
||||
blackfire-agent \
|
||||
build-essential \
|
||||
bzip2 \
|
||||
{% if php_version not in [5.2, 5.3, 5.4, 5.5] %}
|
||||
certbot \
|
||||
{% endif %}
|
||||
coreutils \
|
||||
dnsutils \
|
||||
dos2unix \
|
||||
@@ -82,7 +103,9 @@ RUN set -x \
|
||||
git \
|
||||
git-flow \
|
||||
git-svn \
|
||||
ghostscript \
|
||||
graphviz \
|
||||
gsfonts \
|
||||
hostname \
|
||||
htop \
|
||||
imagemagick \
|
||||
@@ -93,29 +116,31 @@ RUN set -x \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libyaml-dev \
|
||||
locales \
|
||||
make \
|
||||
mongodb-org-shell \
|
||||
mongodb-org-tools \
|
||||
moreutils \
|
||||
\
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||
mariadb-client \
|
||||
{% else %}
|
||||
mysql-client \
|
||||
{% endif %}
|
||||
\
|
||||
mupdf \
|
||||
mupdf-tools \
|
||||
nano \
|
||||
net-tools \
|
||||
netcat \
|
||||
nodejs \
|
||||
openssh-client \
|
||||
patch \
|
||||
patchelf \
|
||||
postgresql-client \
|
||||
python-cffi \
|
||||
python-dev \
|
||||
python-pip \
|
||||
python-wheel \
|
||||
redis-tools \
|
||||
rsync \
|
||||
rubygems \
|
||||
ruby-dev \
|
||||
shellcheck \
|
||||
silversearcher-ag \
|
||||
sqlite3 \
|
||||
subversion \
|
||||
sudo \
|
||||
tig \
|
||||
@@ -125,57 +150,325 @@ RUN set -x \
|
||||
w3m \
|
||||
wget \
|
||||
whois \
|
||||
wkhtmltopdf \
|
||||
xz-utils \
|
||||
yarn \
|
||||
zip \
|
||||
zlib1g-dev \
|
||||
zsh \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
||||
{% if php_version in [5.6, 7.0] %}
|
||||
zsh-common \
|
||||
{% endif %}
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
# Get newer pip version
|
||||
&& pip install --upgrade pip \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false python-pip \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
RUN set -x \
|
||||
{% for tool in software_enabled %}
|
||||
###
|
||||
### Install custom software
|
||||
###
|
||||
{% if not build_fail_fast %}
|
||||
RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- for tool in software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %}
|
||||
# {{ tool }}
|
||||
{# Version specific pre-command available? #}
|
||||
{% if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] %}
|
||||
&& {{ software_available[tool][php_version]['pre'] }} \
|
||||
{# Generic pre-command available? #}
|
||||
{% elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] %}
|
||||
&& {{ software_available[tool]['all']['pre'] }} \
|
||||
{% endif %}
|
||||
{# Version specific command available? #}
|
||||
{% if php_version in software_available[tool] and 'command' in software_available[tool][php_version] %}
|
||||
&& {{ software_available[tool][php_version]['command'] }} \
|
||||
{# Generic command available? #}
|
||||
{% else %}
|
||||
&& {{ software_available[tool]['all']['command'] }} \
|
||||
{% endif %}
|
||||
{# Version specific post-command available? #}
|
||||
{% if php_version in software_available[tool] and 'post' in software_available[tool][php_version] %}
|
||||
&& {{ software_available[tool][php_version]['post'] }} \
|
||||
{# Generic post-command available? #}
|
||||
{% elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] %}
|
||||
&& {{ software_available[tool]['all']['post'] }} \
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%}
|
||||
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{%- if build_fail_fast -%}
|
||||
{{ "\n" }}RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific pre-command available? -#}
|
||||
{%- if php_version in software_available[tool] and 'pre' in software_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool][php_version]['pre'] }} \
|
||||
{#- Generic pre-command available? -#}
|
||||
{%- elif 'all' in software_available[tool] and 'pre' in software_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool]['all']['pre'] }} \
|
||||
{%- endif -%}
|
||||
{#- Version specific command available? -#}
|
||||
{%- if php_version in software_available[tool] and 'command' in software_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool][php_version]['command'] }} \
|
||||
{#- Generic command available? -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool]['all']['command'] }} \
|
||||
{%- endif -%}
|
||||
{#- Version specific post-command available? -#}
|
||||
{%- if php_version in software_available[tool] and 'post' in software_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool][php_version]['post'] }} \
|
||||
{#- Generic post-command available? -#}
|
||||
{%- elif 'all' in software_available[tool] and 'post' in software_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool]['all']['post'] }} \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\
|
||||
{%- endif -%}
|
||||
{#- end of Fail fast version -#}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{% if build_fail_fast -%}
|
||||
RUN set -eux \{{ "\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
###
|
||||
### Install Composer (PHP)
|
||||
###
|
||||
{% if not build_fail_fast %}
|
||||
RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- for tool in composer_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%}
|
||||
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{%- if build_fail_fast -%}
|
||||
{{ "\n" }}RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific gem version available? -#}
|
||||
{%- if php_version in composer_available[tool] and 'version' in composer_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool][php_version]['version'] }} \
|
||||
{#- Generic gem version available? -#}
|
||||
{%- elif 'all' in composer_available[tool] and 'version' in composer_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }}:{{ composer_available[tool]['all']['version'] }} \
|
||||
{#- No version info available -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& COMPOSER_HOME="{{ composer_home }}" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-{{ composer_available[tool]['version'] }} global require {{ composer_available[tool]['name'] }} \
|
||||
{%- endif -%}
|
||||
{#- Symlinks available? -#}
|
||||
{%- if 'link' in composer_available[tool] -%}
|
||||
{{ "\n\t" }}&& ln -s {{ composer_home }}/vendor/{{ composer_available[tool]['name'] }}/{{ composer_available[tool]['link'] }} /usr/local/bin/ \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in composer_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ composer_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\
|
||||
{%- endif -%}
|
||||
{#- end of Fail fast version -#}
|
||||
{%- endif -%}
|
||||
{% endfor %}
|
||||
{% if build_fail_fast -%}
|
||||
RUN set -eux \{{ "\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
\
|
||||
&& (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)
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install npm (Node)
|
||||
###
|
||||
{% if not build_fail_fast %}
|
||||
RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- for tool in npm_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%}
|
||||
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{%- if build_fail_fast -%}
|
||||
{{ "\n" }}RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific gem version available? -#}
|
||||
{%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
|
||||
{#- Generic gem version available? -#}
|
||||
{%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
|
||||
{#- No version info available -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in npm_available[tool] -%}
|
||||
{{ "\n\t" }}&& PATH=$PATH:{{ nvm_home }}/versions/node/$(/bin/ls -1 {{ nvm_home }}/versions/node/ | sort -V | tail -1)/bin {{ nvm_home }}/versions/node/$(/bin/ls -1 {{ nvm_home }}/versions/node/ | sort -V | tail -1)/bin/{{ npm_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\
|
||||
{%- endif -%}
|
||||
{#- end of Fail fast version -#}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{% if build_fail_fast -%}
|
||||
RUN set -eux \{{ "\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
\
|
||||
&& if [ -f "{{ nvm_home }}/nvm.sh" ]; then \
|
||||
ln -sf $(dirname $(su -c '. {{ nvm_home }}/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||
\
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; npm cache clear --force' devilbox \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; nvm cache clear --force' devilbox; \
|
||||
fi \
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find {{ nvm_home }} -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install gem (Ruby)
|
||||
###
|
||||
{% if not build_fail_fast %}
|
||||
RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- for tool in gem_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%}
|
||||
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{%- if build_fail_fast -%}
|
||||
{{ "\n" }}RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific gem version available? -#}
|
||||
{%- if php_version in gem_available[tool] and 'version' in gem_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool][php_version]['version'] }} \
|
||||
{#- Generic gem version available? -#}
|
||||
{%- elif 'all' in gem_available[tool] and 'version' in gem_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} -v {{ gem_available[tool]['all']['version'] }} \
|
||||
{#- No version info available -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& gem install {{ gem_available[tool]['name'] }} \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in gem_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ gem_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\
|
||||
{%- endif -%}
|
||||
{#- end of Fail fast version -#}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{% if build_fail_fast -%}
|
||||
RUN set -eux \{{ "\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
### Install pip (Python) packages
|
||||
###
|
||||
{% if not build_fail_fast %}
|
||||
RUN set -eux \
|
||||
{%- endif -%}
|
||||
{%- for tool in pip_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%}
|
||||
{{ "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{%- if build_fail_fast -%}
|
||||
{{ "\n" }}RUN set -eux \
|
||||
{%- endif -%}
|
||||
{#- Version specific gem version available? -#}
|
||||
{%- if php_version in pip_available[tool] and 'version' in pip_available[tool][php_version] -%}
|
||||
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool][php_version]['version'] }} || true \
|
||||
{#- Generic gem version available? -#}
|
||||
{%- elif 'all' in pip_available[tool] and 'version' in pip_available[tool]['all'] -%}
|
||||
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }}=={{ pip_available[tool]['all']['version'] }} || true \
|
||||
{#- No version info available -#}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& pip install --no-cache-dir --force-reinstall {{ pip_available[tool]['name'] }} || true \
|
||||
{%- endif -%}
|
||||
{#- Fail fast version -#}
|
||||
{%- if build_fail_fast -%}
|
||||
{%- if 'check' in pip_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ pip_available[tool]['check'] }}{{ "\n\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||
{%- endif -%}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\
|
||||
{%- endif -%}
|
||||
{#- end of Fail fast version -#}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{% if build_fail_fast -%}
|
||||
RUN set -eux \{{ "\n" }}
|
||||
{%- else -%}
|
||||
{{ "\n\t" }}\{{ "\n" }}
|
||||
{%- endif %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true) \
|
||||
\
|
||||
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||
|
||||
|
||||
###
|
||||
@@ -183,7 +476,10 @@ RUN set -x \
|
||||
###
|
||||
RUN \
|
||||
{ \
|
||||
echo "PATH=\${PATH}:/usr/local/bin:/usr/local/sbin:/usr/local/node/bin"; \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||
echo 'PATH="{{ nvm_home }}/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
@@ -202,7 +498,7 @@ RUN \
|
||||
###
|
||||
### Verify
|
||||
###
|
||||
RUN set -x \
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
@@ -218,19 +514,74 @@ RUN set -x \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
RUN set -x \
|
||||
{% for tool in software_enabled %}
|
||||
{# Not disabled #}
|
||||
{% if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) %}
|
||||
{% if 'check' in software_available[tool] %}
|
||||
&& {{ software_available[tool]['check'] }} \
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
RUN set -eux \
|
||||
# -------------------- Software --------------------
|
||||
{%- for tool in software_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in software_available[tool]) or (php_version not in software_available[tool]['disabled']) -%}
|
||||
{%- if 'check' in software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ software_available[tool]['check'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
# -------------------- Composer --------------------
|
||||
{%- for tool in composer_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in composer_available[tool]) or (php_version not in composer_available[tool]['disabled']) -%}
|
||||
{%- if 'check' in composer_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ composer_available[tool]['check'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
# -------------------- PIP --------------------
|
||||
{%- for tool in pip_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in pip_available[tool]) or (php_version not in pip_available[tool]['disabled']) -%}
|
||||
{%- if 'check' in pip_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ pip_available[tool]['check'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
# -------------------- NPM --------------------
|
||||
{%- for tool in npm_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in npm_available[tool]) or (php_version not in npm_available[tool]['disabled']) -%}
|
||||
{%- if 'check' in npm_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ npm_available[tool]['check'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}{{ "\n\t" }}\
|
||||
# -------------------- GEM --------------------
|
||||
{%- for tool in gem_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in gem_available[tool]) or (php_version not in gem_available[tool]['disabled']) -%}
|
||||
{%- if 'check' in gem_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ gem_available[tool]['check'] }} \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{% endfor %}{{ "\n\t" }}\
|
||||
# -------------------- Cleanup --------------------
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
&& true
|
||||
\
|
||||
{% for f in directory_to_clean %}
|
||||
&& (rm -rf /root/{{ f }} || true) \
|
||||
{% endfor %}
|
||||
\
|
||||
&& (rm -rf /tmp/* || true) \
|
||||
&& (rm -rf /tmp/.* || true)
|
||||
|
||||
|
||||
{% endif %}
|
||||
# Deactive PSR and Phalcon:
|
||||
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||
RUN set -eux \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||
|
||||
|
||||
###
|
||||
### Copy files
|
||||
###
|
||||
@@ -243,7 +594,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
@@ -267,4 +617,5 @@ WORKDIR /shared/httpd
|
||||
###
|
||||
### 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