mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-11 19:41:16 +00:00
Compare commits
282 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70e3fc68ba | ||
|
|
e6564db96d | ||
|
|
b90a13482d | ||
|
|
397175aec8 | ||
|
|
90f5abc2fd | ||
|
|
79f087e21a | ||
|
|
b08e7d5c02 | ||
|
|
0a71f838f2 | ||
|
|
7e3db52406 | ||
|
|
05d8edb2fe | ||
|
|
a671401bf2 | ||
|
|
0d11c229d4 | ||
|
|
20f87ad3ce | ||
|
|
8a7ca18897 | ||
|
|
59b1197c75 | ||
|
|
12e51113a6 | ||
|
|
40c2db6633 | ||
|
|
b4bfb84dcf | ||
|
|
b7a52ff1bd | ||
|
|
9df90b3500 | ||
|
|
0bdc196f43 | ||
|
|
14f9ebe3b8 | ||
|
|
e0cb0c1f5d | ||
|
|
4b9739a99d | ||
|
|
9cbb2d3ddb | ||
|
|
82f9bc2c86 | ||
|
|
4ab9fff38b | ||
|
|
73734b4481 | ||
|
|
3610e5f602 | ||
|
|
a425b5fd82 | ||
|
|
e02e7781c7 | ||
|
|
b42b7789df | ||
|
|
70a19575bb | ||
|
|
e34a8a8792 | ||
|
|
7ed35f19a9 | ||
|
|
573d5fa2e2 | ||
|
|
17b98f785c | ||
|
|
46faa83583 | ||
|
|
a23cdcdfd0 | ||
|
|
b6883cf4be | ||
|
|
8334b38869 | ||
|
|
ed40a191df | ||
|
|
107b39f5a2 | ||
|
|
0b6187fe37 | ||
|
|
b9efb7b1c3 | ||
|
|
f9a5db2cee | ||
|
|
2471921a2a | ||
|
|
fd44d5a2ef | ||
|
|
e9852d26d8 | ||
|
|
465a0284c0 | ||
|
|
c906ff09e0 | ||
|
|
ee7b55fc0f | ||
|
|
cbc27ffffd | ||
|
|
f5f22904fb | ||
|
|
b5467210e1 | ||
|
|
b681725fa5 | ||
|
|
1b02bd11fe | ||
|
|
476a1dee47 | ||
|
|
8213301902 | ||
|
|
ca544c19d2 | ||
|
|
180edab57f | ||
|
|
a2b50e69fd | ||
|
|
b51e640932 | ||
|
|
d8eccbf21a | ||
|
|
4176a5dd70 | ||
|
|
83cc953e55 | ||
|
|
d0949e3fe9 | ||
|
|
ab8a549764 | ||
|
|
d26e6221c4 | ||
|
|
07267f20d0 | ||
|
|
0e4f51c82d | ||
|
|
c35c942bf8 | ||
|
|
a02163b6c1 | ||
|
|
35a3a9a486 | ||
|
|
b72f81edd9 | ||
|
|
a47265e482 | ||
|
|
880a6f17b8 | ||
|
|
b224ecfdd7 | ||
|
|
c17e49b849 | ||
|
|
9a981de73f | ||
|
|
beeff54815 | ||
|
|
6cb03a9890 | ||
|
|
0dc4bd6959 | ||
|
|
a8c3f2c655 | ||
|
|
2655813ab8 | ||
|
|
0011b2e6ed | ||
|
|
52c1a907f9 | ||
|
|
e19d955965 | ||
|
|
c0af9f91a6 | ||
|
|
5f8551e742 | ||
|
|
b774432a7a | ||
|
|
e856fe1da4 | ||
|
|
1ed1c7eb81 | ||
|
|
756b6bc0fe | ||
|
|
4e9969ef75 | ||
|
|
1b67f7b02d | ||
|
|
9fda4fd0a2 | ||
|
|
4858303a1b | ||
|
|
2e3115ef04 | ||
|
|
8989b52602 | ||
|
|
ee6b735f17 | ||
|
|
20b45a0b79 | ||
|
|
687969b59b | ||
|
|
111c8a412f | ||
|
|
1d27f22e3f | ||
|
|
4b8668623b | ||
|
|
7b7a680e0b | ||
|
|
49d9459df8 | ||
|
|
efad9eaa48 | ||
|
|
22231fc61c | ||
|
|
f971d8d4b8 | ||
|
|
5498275047 | ||
|
|
a6f9bd8219 | ||
|
|
ea47aa2ba5 | ||
|
|
5094da0ae6 | ||
|
|
38d4f0c222 | ||
|
|
853962c4e9 | ||
|
|
8d50798d54 | ||
|
|
b50a688add | ||
|
|
99bd1d2cdb | ||
|
|
ac368b8725 | ||
|
|
c815e9040c | ||
|
|
61ccae6fc1 | ||
|
|
f7699f9c84 | ||
|
|
1cab69c0ab | ||
|
|
2158817a05 | ||
|
|
29d34dcdb2 | ||
|
|
ff04507e50 | ||
|
|
a448549b82 | ||
|
|
e808575164 | ||
|
|
643e1a7478 | ||
|
|
f3758cec56 | ||
|
|
ec5d6734fa | ||
|
|
ab91e0794b | ||
|
|
b6f926cf8a | ||
|
|
1609e8ea61 | ||
|
|
389e0bad20 | ||
|
|
e48ceef4a6 | ||
|
|
b659089ff9 | ||
|
|
e8e92eceb7 | ||
|
|
14c25cf670 | ||
|
|
8679dbee6a | ||
|
|
6ccf44b5a9 | ||
|
|
2826053fc0 | ||
|
|
1eb30660a6 | ||
|
|
81ef92f91e | ||
|
|
663f716031 | ||
|
|
ea52cc0969 | ||
|
|
ee14a4d46e | ||
|
|
d894a2bff7 | ||
|
|
cdfca15613 | ||
|
|
d1061273b0 | ||
|
|
1c31dbe3bf | ||
|
|
7975126bdf | ||
|
|
ffaee357fd | ||
|
|
a0e7ae7131 | ||
|
|
7041e6ef0a | ||
|
|
176f48d063 | ||
|
|
dc15215156 | ||
|
|
7693a4ea3f | ||
|
|
4ac5a7ab10 | ||
|
|
2b60cd648d | ||
|
|
492d23b9f8 | ||
|
|
b852001495 | ||
|
|
5eb8ce8187 | ||
|
|
d1fd0addaa | ||
|
|
0aceceabda | ||
|
|
42933391b6 | ||
|
|
436babd549 | ||
|
|
abfeef2e5c | ||
|
|
896c8f6c80 | ||
|
|
7f71dd2493 | ||
|
|
8318b43d2f | ||
|
|
6a00f19e88 | ||
|
|
e97261bc87 | ||
|
|
06ac183215 | ||
|
|
0181f196f6 | ||
|
|
4e5da07e21 | ||
|
|
6c6470c181 | ||
|
|
80f03e7512 | ||
|
|
157945dada | ||
|
|
116aa387fb | ||
|
|
e33041ca55 | ||
|
|
2d489beb2c | ||
|
|
cb9437b4f3 | ||
|
|
9505770a8c | ||
|
|
919a6887a6 | ||
|
|
b352de6939 | ||
|
|
456447070a | ||
|
|
ac508caee4 | ||
|
|
6b4596688c | ||
|
|
98569594bf | ||
|
|
8b9dbdf36b | ||
|
|
fdc024fac3 | ||
|
|
f36d0818b0 | ||
|
|
361192deee | ||
|
|
b937b99641 | ||
|
|
a7b96c7cf5 | ||
|
|
45e25586e3 | ||
|
|
df59c7b7bc | ||
|
|
c18bac4387 | ||
|
|
0239ff0a78 | ||
|
|
02c8c9d6ec | ||
|
|
207b78df6f | ||
|
|
20c5b88e52 | ||
|
|
5585109fb8 | ||
|
|
2517c33bae | ||
|
|
b0c487ff28 | ||
|
|
e16fdce860 | ||
|
|
31489459ad | ||
|
|
64e290a359 | ||
|
|
e145f9cec8 | ||
|
|
40ac8e4ef0 | ||
|
|
1640850b75 | ||
|
|
42a0a4f7ac | ||
|
|
69689351c8 | ||
|
|
865f18a212 | ||
|
|
f0b758e5fc | ||
|
|
d3e642b5f6 | ||
|
|
928c712fa6 | ||
|
|
c818efe5e3 | ||
|
|
ec1a1bd79d | ||
|
|
184881a8c5 | ||
|
|
1782f24d03 | ||
|
|
4cee51dbf4 | ||
|
|
fbcd91f248 | ||
|
|
d2cb8ef2c3 | ||
|
|
f3e7f5d352 | ||
|
|
d3923eb359 | ||
|
|
9a24cfe917 | ||
|
|
0229adf7c1 | ||
|
|
c35262e9b8 | ||
|
|
17649294c2 | ||
|
|
2d428c264a | ||
|
|
72d34ca52f | ||
|
|
6fbbc9580f | ||
|
|
44cc0093ec | ||
|
|
881dd567c9 | ||
|
|
2184f1f9a0 | ||
|
|
e10f81915b | ||
|
|
9fbdc187d8 | ||
|
|
1261f3a700 | ||
|
|
015eaff5d0 | ||
|
|
b5c34feb7c | ||
|
|
61ee6b3bfb | ||
|
|
feb6f0fee8 | ||
|
|
40c3980b3e | ||
|
|
857900acc6 | ||
|
|
7aa26f96d0 | ||
|
|
70ab96876d | ||
|
|
666980dc1c | ||
|
|
b776a9110f | ||
|
|
d1ec52838a | ||
|
|
8d8c92657a | ||
|
|
7a2710ffc5 | ||
|
|
58751d8deb | ||
|
|
3d96f15958 | ||
|
|
c8c71fb115 | ||
|
|
e156582252 | ||
|
|
ae9d987cb9 | ||
|
|
7b68744404 | ||
|
|
c3ad81b808 | ||
|
|
9531a29533 | ||
|
|
ed3449af98 | ||
|
|
5a5bcb1644 | ||
|
|
b0d72726bf | ||
|
|
9f073247f8 | ||
|
|
49e3180891 | ||
|
|
b4df3bc119 | ||
|
|
5aeeb86210 | ||
|
|
0421750699 | ||
|
|
36ef04c0f6 | ||
|
|
b0c3afc0d4 | ||
|
|
5ddf4a044a | ||
|
|
32a7cee28c | ||
|
|
1b12438855 | ||
|
|
c40619c7c0 | ||
|
|
d97348f457 | ||
|
|
f86556c72d | ||
|
|
8e94d09e39 | ||
|
|
7df4f04a04 | ||
|
|
0c664d770e |
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
298
.github/workflows/action-schedule_master.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: nightly
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
# Nightly: At 00:00 on Monday, Wednesday, and Friday
|
||||||
|
schedule:
|
||||||
|
- cron: '0 18 * * 1,3,5'
|
||||||
|
# Dispatch: allows for manual trigger via GH UI
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (1/8) Determine parameter settings
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
params:
|
||||||
|
uses: ./.github/workflows/params-nightly_master.yml
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (2/8) Configure Build and Deploy Matrices
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
configure:
|
||||||
|
needs: [params]
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||||
|
with:
|
||||||
|
enabled: true
|
||||||
|
can_deploy: true
|
||||||
|
versions: ${{ needs.params.outputs.versions }}
|
||||||
|
refs: ${{ needs.params.outputs.refs }}
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (3/8) Build & Test base
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
pull_base_image: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
stage_prev: ''
|
||||||
|
|
||||||
|
test-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (4/8) Build & Test mods
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
stage_prev: base
|
||||||
|
|
||||||
|
test-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (5/8) Build & Test prod
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
stage_prev: mods
|
||||||
|
|
||||||
|
test-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (6/8) Build & Test work
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
stage_prev: prod
|
||||||
|
|
||||||
|
test-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (7/8) Push images
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
push-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (8/8) Push Manifests
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
manifest-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
298
.github/workflows/action-schedule_tags.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: nightly
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
# Nightly: At 18:00 on Sunday, Tuesday, and Thursday
|
||||||
|
schedule:
|
||||||
|
- cron: '0 18 * * 0,2,4'
|
||||||
|
# Dispatch: allows for manual trigger via GH UI
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (1/8) Determine parameter settings
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
params:
|
||||||
|
uses: ./.github/workflows/params-nightly_tags.yml
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (2/8) Configure Build and Deploy Matrices
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
configure:
|
||||||
|
needs: [params]
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||||
|
with:
|
||||||
|
enabled: true
|
||||||
|
can_deploy: true
|
||||||
|
versions: ${{ needs.params.outputs.versions }}
|
||||||
|
refs: ${{ needs.params.outputs.refs }}
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (3/8) Build & Test base
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
pull_base_image: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
stage_prev: ''
|
||||||
|
|
||||||
|
test-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (4/8) Build & Test mods
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
stage_prev: base
|
||||||
|
|
||||||
|
test-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (5/8) Build & Test prod
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
stage_prev: mods
|
||||||
|
|
||||||
|
test-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (6/8) Build & Test work
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
stage_prev: prod
|
||||||
|
|
||||||
|
test-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (7/8) Push images
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
push-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (8/8) Push Manifests
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
manifest-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
298
.github/workflows/action.yml
vendored
Normal file
298
.github/workflows/action.yml
vendored
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: build
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
# Push or pull_request will be determined in jobs.configure.enabled
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
# Dispatch: allows for manual trigger via GH UI
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (1/8) Determine parameter settings
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
params:
|
||||||
|
uses: ./.github/workflows/params.yml
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (2/8) Configure Build and Deploy Matrices
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
configure:
|
||||||
|
needs: [params]
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-configure.yml@master
|
||||||
|
with:
|
||||||
|
enabled: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && (github.event.pull_request.user.login != 'cytopia')) }}
|
||||||
|
can_deploy: ${{ (github.repository == 'devilbox/docker-php-fpm') && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/') || startsWith(github.ref, 'refs/heads/release-')) }}
|
||||||
|
versions: ${{ needs.params.outputs.versions }}
|
||||||
|
refs: ${{ needs.params.outputs.refs }}
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (3/8) Build & Test base
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
pull_base_image: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
stage_prev: ''
|
||||||
|
|
||||||
|
test-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (4/8) Build & Test mods
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
stage_prev: base
|
||||||
|
|
||||||
|
test-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (5/8) Build & Test prod
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
stage_prev: mods
|
||||||
|
|
||||||
|
test-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (6/8) Build & Test work
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
build-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-build.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
run_tests: false
|
||||||
|
upload_artifact: true
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
stage_prev: prod
|
||||||
|
|
||||||
|
test-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- build-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-test.yml@master
|
||||||
|
with:
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (7/8) Push images
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
push-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
push-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- test-base
|
||||||
|
- test-prod
|
||||||
|
- test-mods
|
||||||
|
- test-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-image.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_build }}
|
||||||
|
artifact_prefix: ${{ needs.configure.outputs.artifact_prefix }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
# (8/8) Push Manifests
|
||||||
|
# -----------------------------------------------------------------------------------------------
|
||||||
|
manifest-base:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-base
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: base
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-mods:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-mods
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: mods
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-prod:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-prod
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: prod
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
manifest-work:
|
||||||
|
needs:
|
||||||
|
- configure
|
||||||
|
- push-work
|
||||||
|
uses: devilbox/github-actions/.github/workflows/docker-multistage-push-manifest.yml@master
|
||||||
|
with:
|
||||||
|
can_deploy: ${{ needs.configure.outputs.can_login == 'true' && needs.configure.outputs.can_push == 'true' }}
|
||||||
|
has_refs: ${{ needs.configure.outputs.has_refs == 'true' }}
|
||||||
|
matrix: ${{ needs.configure.outputs.matrix_deploy }}
|
||||||
|
versions: ${{ needs.configure.outputs.versions }}
|
||||||
|
stage: work
|
||||||
|
secrets:
|
||||||
|
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
347
.github/workflows/build.yml
vendored
347
.github/workflows/build.yml
vendored
@@ -1,347 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# Job Name
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
name: build
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# When to run
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
on:
|
|
||||||
# Runs on Pull Requests
|
|
||||||
pull_request:
|
|
||||||
# Runs on Push
|
|
||||||
push:
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# What to run
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: "[ PHP-${{ matrix.version }} ]"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: False
|
|
||||||
matrix:
|
|
||||||
version:
|
|
||||||
- '5.2'
|
|
||||||
- '5.3'
|
|
||||||
- '5.4'
|
|
||||||
- '5.5'
|
|
||||||
- '5.6'
|
|
||||||
- '7.0'
|
|
||||||
- '7.1'
|
|
||||||
- '7.2'
|
|
||||||
- '7.3'
|
|
||||||
- '7.4'
|
|
||||||
- '8.0'
|
|
||||||
- '8.1'
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Setup repository
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Set variables
|
|
||||||
id: vars
|
|
||||||
run: |
|
|
||||||
|
|
||||||
# Retrieve git info (tags, etc)
|
|
||||||
git fetch --all
|
|
||||||
|
|
||||||
# Branch, Tag or Commit
|
|
||||||
GIT_TYPE="$( \
|
|
||||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
|
||||||
| sh \
|
|
||||||
| grep '^GIT_TYPE' \
|
|
||||||
| sed 's|.*=||g' \
|
|
||||||
)"
|
|
||||||
# Branch name, Tag name or Commit Hash
|
|
||||||
GIT_SLUG="$( \
|
|
||||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
|
||||||
| sh \
|
|
||||||
| grep '^GIT_NAME' \
|
|
||||||
| sed 's|.*=||g' \
|
|
||||||
)"
|
|
||||||
# Docker Tag
|
|
||||||
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
|
|
||||||
DOCKER_TAG_BASE="${VERSION}-base"
|
|
||||||
DOCKER_TAG_MODS="${VERSION}-mods"
|
|
||||||
DOCKER_TAG_PROD="${VERSION}-prod"
|
|
||||||
DOCKER_TAG_WORK="${VERSION}-work"
|
|
||||||
else
|
|
||||||
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Output
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}"
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}"
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
|
||||||
|
|
||||||
# Export variable
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Base
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Base
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make _pull-base-image VERSION=${VERSION}
|
|
||||||
retry make build-base VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Base
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-base VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Mods
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Mods
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-mods VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Mods
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-mods VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Prod
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Prod
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-prod VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Prod
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-prod VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Work
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Work
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-work VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Work
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-work VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Diff README.md
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Diff README.md
|
|
||||||
run: |
|
|
||||||
make gen-readme VERSION=${VERSION}
|
|
||||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Deploy
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Publish images (only repo owner)
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Output
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}"
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}"
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
|
||||||
|
|
||||||
# Tag image
|
|
||||||
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
|
|
||||||
docker images
|
|
||||||
|
|
||||||
# Login
|
|
||||||
retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
|
|
||||||
|
|
||||||
# Push
|
|
||||||
retry make push TAG=${DOCKER_TAG_BASE}
|
|
||||||
retry make push TAG=${DOCKER_TAG_MODS}
|
|
||||||
retry make push TAG=${DOCKER_TAG_PROD}
|
|
||||||
retry make push TAG=${DOCKER_TAG_WORK}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
|
||||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
|
||||||
&& (
|
|
||||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
|
||||||
||
|
|
||||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
|
||||||
||
|
|
||||||
(github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
|
|
||||||
)
|
|
||||||
5
.github/workflows/linting.yml
vendored
5
.github/workflows/linting.yml
vendored
@@ -11,6 +11,7 @@ name: lint
|
|||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
on:
|
on:
|
||||||
# Runs on Pull Requests
|
# Runs on Pull Requests
|
||||||
|
workflow_dispatch:
|
||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
|
|
||||||
@@ -41,10 +42,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make lint-yaml
|
make lint-yaml
|
||||||
|
|
||||||
- name: Lint workflow
|
|
||||||
run: |
|
|
||||||
make lint-workflow
|
|
||||||
|
|
||||||
- name: Lint Changelog
|
- name: Lint Changelog
|
||||||
run: |
|
run: |
|
||||||
make lint-changelog
|
make lint-changelog
|
||||||
|
|||||||
350
.github/workflows/nightly.yml
vendored
350
.github/workflows/nightly.yml
vendored
@@ -1,350 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# Job Name
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
name: nightly
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# When to run
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
on:
|
|
||||||
# Runs daily
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# What to run
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
jobs:
|
|
||||||
nightly:
|
|
||||||
name: "[ PHP-${{ matrix.version }} ] (ref: ${{ matrix.refs }})"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
fail-fast: False
|
|
||||||
matrix:
|
|
||||||
version:
|
|
||||||
- '5.2'
|
|
||||||
- '5.3'
|
|
||||||
- '5.4'
|
|
||||||
- '5.5'
|
|
||||||
- '5.6'
|
|
||||||
- '7.0'
|
|
||||||
- '7.1'
|
|
||||||
- '7.2'
|
|
||||||
- '7.3'
|
|
||||||
- '7.4'
|
|
||||||
- '8.0'
|
|
||||||
- '8.1'
|
|
||||||
refs:
|
|
||||||
- 'master'
|
|
||||||
- '0.125'
|
|
||||||
steps:
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Setup repository
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
ref: ${{ matrix.refs }}
|
|
||||||
|
|
||||||
- name: Set variables
|
|
||||||
id: vars
|
|
||||||
run: |
|
|
||||||
|
|
||||||
# Retrieve git info (tags, etc)
|
|
||||||
git fetch --all
|
|
||||||
|
|
||||||
# Branch, Tag or Commit
|
|
||||||
GIT_TYPE="$( \
|
|
||||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
|
||||||
| sh \
|
|
||||||
| grep '^GIT_TYPE' \
|
|
||||||
| sed 's|.*=||g' \
|
|
||||||
)"
|
|
||||||
# Branch name, Tag name or Commit Hash
|
|
||||||
GIT_SLUG="$( \
|
|
||||||
curl -sS https://raw.githubusercontent.com/cytopia/git-tools/master/git-info.sh \
|
|
||||||
| sh \
|
|
||||||
| grep '^GIT_NAME' \
|
|
||||||
| sed 's|.*=||g' \
|
|
||||||
)"
|
|
||||||
# Docker Tag
|
|
||||||
if [ "${GIT_TYPE}" = "BRANCH" ] && [ "${GIT_SLUG}" = "master" ]; then
|
|
||||||
DOCKER_TAG_BASE="${VERSION}-base"
|
|
||||||
DOCKER_TAG_MODS="${VERSION}-mods"
|
|
||||||
DOCKER_TAG_PROD="${VERSION}-prod"
|
|
||||||
DOCKER_TAG_WORK="${VERSION}-work"
|
|
||||||
else
|
|
||||||
DOCKER_TAG_BASE="${VERSION}-base-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_MODS="${VERSION}-mods-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_PROD="${VERSION}-prod-${GIT_SLUG}"
|
|
||||||
DOCKER_TAG_WORK="${VERSION}-work-${GIT_SLUG}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Output
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}"
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}"
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
|
||||||
|
|
||||||
# Export variable
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}" >> ${GITHUB_ENV}
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}" >> ${GITHUB_ENV}
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}" >> ${GITHUB_ENV}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Base
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Base
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make _pull-base-image VERSION=${VERSION}
|
|
||||||
retry make build-base VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Base
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-base VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Mods
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Mods
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-mods VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Mods
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-mods VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Prod
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Prod
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-prod VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Prod
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-prod VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Work
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Build Work
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make build-work VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
- name: Test Work
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
retry make test-work VERSION=${VERSION}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Diff README.md
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Diff README.md
|
|
||||||
run: |
|
|
||||||
make gen-readme VERSION=${VERSION}
|
|
||||||
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
# Deploy
|
|
||||||
# ------------------------------------------------------------
|
|
||||||
- name: Publish images (only repo owner)
|
|
||||||
run: |
|
|
||||||
retry() {
|
|
||||||
for n in $(seq ${RETRIES}); do
|
|
||||||
echo "[${n}/${RETRIES}] ${*}";
|
|
||||||
if eval "${*}"; then
|
|
||||||
echo "[SUCC] ${n}/${RETRIES}";
|
|
||||||
return 0;
|
|
||||||
fi;
|
|
||||||
sleep ${PAUSE};
|
|
||||||
echo "[FAIL] ${n}/${RETRIES}";
|
|
||||||
done;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Output
|
|
||||||
echo "GIT_TYPE=${GIT_TYPE}"
|
|
||||||
echo "GIT_SLUG=${GIT_SLUG}"
|
|
||||||
echo "DOCKER_TAG_BASE=${DOCKER_TAG_BASE}"
|
|
||||||
echo "DOCKER_TAG_MODS=${DOCKER_TAG_MODS}"
|
|
||||||
echo "DOCKER_TAG_PROD=${DOCKER_TAG_PROD}"
|
|
||||||
echo "DOCKER_TAG_WORK=${DOCKER_TAG_WORK}"
|
|
||||||
|
|
||||||
# Tag image
|
|
||||||
retry make tag OLD_TAG="${VERSION}-base" NEW_TAG="${DOCKER_TAG_BASE}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-mods" NEW_TAG="${DOCKER_TAG_MODS}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-prod" NEW_TAG="${DOCKER_TAG_PROD}"
|
|
||||||
retry make tag OLD_TAG="${VERSION}-work" NEW_TAG="${DOCKER_TAG_WORK}"
|
|
||||||
docker images
|
|
||||||
|
|
||||||
# Login
|
|
||||||
retry make login USERNAME=${{ secrets.DOCKERHUB_USERNAME }} PASSWORD=${{ secrets.DOCKERHUB_PASSWORD }}
|
|
||||||
|
|
||||||
# Push
|
|
||||||
retry make push TAG=${DOCKER_TAG_BASE}
|
|
||||||
retry make push TAG=${DOCKER_TAG_MODS}
|
|
||||||
retry make push TAG=${DOCKER_TAG_PROD}
|
|
||||||
retry make push TAG=${DOCKER_TAG_WORK}
|
|
||||||
env:
|
|
||||||
VERSION: ${{ matrix.version }}
|
|
||||||
RETRIES: 20
|
|
||||||
PAUSE: 10
|
|
||||||
# https://help.github.com/en/github/automating-your-workflow-with-github-actions/contexts-and-expression-syntax-for-github-actions#functions
|
|
||||||
if: github.event.pull_request.base.repo.id == github.event.pull_request.head.repo.id
|
|
||||||
&& (
|
|
||||||
(github.event_name == 'schedule' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
|
||||||
||
|
|
||||||
(github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')))
|
|
||||||
||
|
|
||||||
(github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release-'))
|
|
||||||
)
|
|
||||||
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
71
.github/workflows/params-nightly_master.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: params
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Custom Variables
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
env:
|
||||||
|
VERSIONS: >
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
REFS: >
|
||||||
|
{
|
||||||
|
"DEFAULT_BRANCH": "master",
|
||||||
|
"BRANCHES": "master",
|
||||||
|
"NUM_LATEST_TAGS": 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
###
|
||||||
|
### OUTPUTS
|
||||||
|
###
|
||||||
|
outputs:
|
||||||
|
versions:
|
||||||
|
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||||
|
value: ${{ jobs.params.outputs.versions }}
|
||||||
|
refs:
|
||||||
|
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||||
|
value: ${{ jobs.params.outputs.refs }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
params:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.set-versions.outputs.versions }}
|
||||||
|
refs: ${{ steps.set-refs.outputs.refs }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "[Set-Output] jsonify VERSIONS"
|
||||||
|
id: set-versions
|
||||||
|
run: |
|
||||||
|
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||||
|
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: "[Set-Output] jsonify REFS"
|
||||||
|
id: set-refs
|
||||||
|
run: |
|
||||||
|
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||||
|
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||||
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
71
.github/workflows/params-nightly_tags.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: params
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Custom Variables
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
env:
|
||||||
|
VERSIONS: >
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
REFS: >
|
||||||
|
{
|
||||||
|
"DEFAULT_BRANCH": "master",
|
||||||
|
"BRANCHES": "",
|
||||||
|
"NUM_LATEST_TAGS": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
###
|
||||||
|
### OUTPUTS
|
||||||
|
###
|
||||||
|
outputs:
|
||||||
|
versions:
|
||||||
|
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||||
|
value: ${{ jobs.params.outputs.versions }}
|
||||||
|
refs:
|
||||||
|
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||||
|
value: ${{ jobs.params.outputs.refs }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
params:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.set-versions.outputs.versions }}
|
||||||
|
refs: ${{ steps.set-refs.outputs.refs }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "[Set-Output] jsonify VERSIONS"
|
||||||
|
id: set-versions
|
||||||
|
run: |
|
||||||
|
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||||
|
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: "[Set-Output] jsonify REFS"
|
||||||
|
id: set-refs
|
||||||
|
run: |
|
||||||
|
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||||
|
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||||
71
.github/workflows/params.yml
vendored
Normal file
71
.github/workflows/params.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Job Name
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
name: params
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Custom Variables
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
env:
|
||||||
|
VERSIONS: >
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NAME": "PHP",
|
||||||
|
"VERSION": ["5.3", "5.4", "5.5", "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2"],
|
||||||
|
"FLAVOUR": ["default"],
|
||||||
|
"ARCH": ["linux/amd64", "linux/arm64"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
REFS: >
|
||||||
|
{
|
||||||
|
"DEFAULT_BRANCH": "master",
|
||||||
|
"BRANCHES": "",
|
||||||
|
"NUM_LATEST_TAGS": 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# When to run
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
###
|
||||||
|
### OUTPUTS
|
||||||
|
###
|
||||||
|
outputs:
|
||||||
|
versions:
|
||||||
|
description: "JSON string for versions. Use via: fromJson(needs.params.versions)"
|
||||||
|
value: ${{ jobs.params.outputs.versions }}
|
||||||
|
refs:
|
||||||
|
description: "JSON string for refs. Use via: fromJson(needs.params.refs)"
|
||||||
|
value: ${{ jobs.params.outputs.refs }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
params:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
versions: ${{ steps.set-versions.outputs.versions }}
|
||||||
|
refs: ${{ steps.set-refs.outputs.refs }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: "[Set-Output] jsonify VERSIONS"
|
||||||
|
id: set-versions
|
||||||
|
run: |
|
||||||
|
VERSIONS="$( echo '${{ env.VERSIONS }}' | jq -M -c )"
|
||||||
|
echo "versions=${VERSIONS}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: "[Set-Output] jsonify REFS"
|
||||||
|
id: set-refs
|
||||||
|
run: |
|
||||||
|
REFS="$( echo '${{ env.REFS }}' | jq -M -c )"
|
||||||
|
echo "refs=${REFS}" >> $GITHUB_OUTPUT
|
||||||
75
.gitignore
vendored
75
.gitignore
vendored
@@ -1,74 +1,3 @@
|
|||||||
######################################
|
|
||||||
# CUSTOM
|
|
||||||
######################################
|
|
||||||
|
|
||||||
build/ansible/*.retry
|
build/ansible/*.retry
|
||||||
|
Makefile.docker
|
||||||
|
Makefile.lint
|
||||||
|
|
||||||
######################################
|
|
||||||
# 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
|
|
||||||
|
|||||||
190
CHANGELOG.md
190
CHANGELOG.md
@@ -4,6 +4,196 @@
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.142
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed `phalcon` module
|
||||||
|
- Fixed `swoole` module
|
||||||
|
- Fixed installation of wkhtmltopdf [#245](https://github.com/devilbox/docker-php-fpm/pull/245)
|
||||||
|
- FIxed installation of drupalconsole [#246](https://github.com/devilbox/docker-php-fpm/pull/246)
|
||||||
|
- Fixed installation of symfoni cli [#247](https://github.com/devilbox/docker-php-fpm/pull/247)
|
||||||
|
- Fixed installation of NodeJS
|
||||||
|
- Fixed installation of PostgreSQL client for PHP 5.6
|
||||||
|
- Fixed installation of PostgreSQL client for PHP 7.0
|
||||||
|
- Disabled Phalcon Devtools for PHP 7.4 as it breaks
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.141
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Fixed correct permission for `/opt/nvm` during startup
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.140
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Ensure apt Jessie repositories are trusted beyond EOL
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.139
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- (Re-)added mongodb command line client
|
||||||
|
- (Re-)added postgresql command line client
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Speed up `xargs` commands by using multi-CPU
|
||||||
|
- Use buildkit for building
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.138
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added arm64 support
|
||||||
|
- Added `vips` module for PHP 8.0
|
||||||
|
- Added `vips` module for PHP 8.1
|
||||||
|
- Added `swoole` module for PHP 8.1
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Separated nightly jobs
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.137
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Ensured CI tests are platform agnostic (amd64 vs arm64)
|
||||||
|
- Ensured CI pipeline will work for long-running jobs
|
||||||
|
|
||||||
|
#### Removed
|
||||||
|
- Removed homebrew due to arm64 issues
|
||||||
|
- Removed postgres cmd client and apt repositories due to arm64 issues
|
||||||
|
- Removed mongodb cmd client and apt repositories due to arm64 issues
|
||||||
|
- Removed Ansible due to arm64 issues
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.136
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `mongodb-org-shell` and `mongodb-org-tools` install
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Re-added `mongodb` for PHP 5.3
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Switch PHP 5.4 base image to [devilbox/php-fpm-5.4](https://github.com/devilbox/docker-php-fpm-5.4) for potential arm64 support
|
||||||
|
- Switch PHP 5.5 base image to [devilbox/php-fpm-5.5](https://github.com/devilbox/docker-php-fpm-5.5) for potential arm64 support
|
||||||
|
- Changed base image back to Debian Jessie for PHP 5.2 and PHP 5.3
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.135
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed cloning of gitflow
|
||||||
|
- Fixed pidof issue on QUEMU by replacing it with pgrep [#854](https://github.com/cytopia/devilbox/issues/854)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Changed PHP 5.2 and PHP 5.3 base images to Debian stretch
|
||||||
|
- Removed photoncms binaries (their GitHub organization went private)
|
||||||
|
- Removed `mongodb` extension from PHP 5.3 due to build errors
|
||||||
|
- Removed `ioncube` extension for PHP 5.2, PHP 5.3 and PHP 5.4 (arm64 only supported from PHP 5.5 onwards)
|
||||||
|
- Removed `codeception` from PHP 5.3
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.134
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Added extension `xdebug` to PHP 8.2
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.133
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added PHP 8.2: https://github.com/devilbox/docker-php-fpm-8.2
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.132
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed `nvm` PATH priority [#846](https://github.com/cytopia/devilbox/issues/846)
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- added extension `sqlsrv` to php 8.1
|
||||||
|
- added extension `pdo_sqlsrv` to php 8.1
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Changed postfix hostname to `localhost` instead of GitHub runners long name
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.131
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added binary `sqlite3` to all PHP images [#856](https://github.com/cytopia/devilbox/issues/856)
|
||||||
|
- Added binary `laravel` to PHP 8.0 and PHP 8.1 [#823](https://github.com/cytopia/devilbox/issues/823)
|
||||||
|
- Added AVIF support in GD for PHP 8.1 [#834](https://github.com/cytopia/devilbox/issues/834)
|
||||||
|
- Added extension `amqp` to PHP 8.0 and PHP 8.1 [#826](https://github.com/cytopia/devilbox/issues/826)
|
||||||
|
- Added extension `uploadprogress` to PHP 8.0 and PHP 8.1 [#158](https://github.com/devilbox/docker-php-fpm/pull/158)
|
||||||
|
- Added extension `imagick` to PHP 8.0 and PHP 8.1
|
||||||
|
- Added extension `rdkafka` to PHP 8.0 and PHP 8.1
|
||||||
|
- Added extension `xlswriter` to PHP 8.1
|
||||||
|
- Added extension `pdo_dblib` to PHP 8.1
|
||||||
|
- Added extension `uuid` to all PHP versions (except 5.2)
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Updated `php-cs-fixer` to latest version [#219](https://github.com/devilbox/docker-php-fpm/pull/219)
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.130
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Fixed correct keys for `apt`
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Added integration checks for `apt update`
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.129
|
||||||
|
|
||||||
|
#### Fixed
|
||||||
|
- Pinned module: `uploadprogress`
|
||||||
|
- Pinned module: `mongodb`
|
||||||
|
- Pinned lib: `libenchant`
|
||||||
|
- Pinned lib: `libicu`
|
||||||
|
- Pinned lib: `libvpx`
|
||||||
|
- Pinned PHP 8.0: https://github.com/devilbox/docker-php-fpm-8.0/pull/16
|
||||||
|
- Pinned PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1/pull/9
|
||||||
|
- Fixed `pgsql` apt key
|
||||||
|
- Fixed `deployer` download on cert issues
|
||||||
|
- Fixed `phpmd` download on cert issues
|
||||||
|
- Fixed `phpunit` download on cert issues
|
||||||
|
- Fixed `php-cs-fixer` download on cert issues
|
||||||
|
- Fixed building `sockets` on PHP 8.0 and PHP 8.1
|
||||||
|
- Fixed building `ffi` on PHP 7.4
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Removed `mcrypt` from PHP 8.1 as it is not yet supported
|
||||||
|
- Removed `enchant` from PHP 7.3 and PHP 7.4 as libenchant1 is not available via apt
|
||||||
|
- Updated PHP 8.0 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.0/pull/17
|
||||||
|
- Updated PHP 8.1 base image to BullsEye: https://github.com/devilbox/docker-php-fpm-8.1/pull/10
|
||||||
|
- Updated PostgreSQL repos to Bullseye for PHP >= 7.3
|
||||||
|
- Updated `pip` to use Python3 for PHP >= 7.3
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.128
|
||||||
|
|
||||||
|
#### Added
|
||||||
|
- Adding `pdo_sqlsrv` to more PHP versions
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.127
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Adding `swoole` to more PHP 8.0
|
||||||
|
|
||||||
|
|
||||||
|
## Release 0.126
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- Added Homebrew for all versions
|
||||||
|
|
||||||
|
|
||||||
## Release 0.125
|
## Release 0.125
|
||||||
|
|
||||||
#### Changed
|
#### Changed
|
||||||
|
|||||||
@@ -44,15 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& rm -f /etc/apt/sources.list \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& { \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
dpkg-dev \
|
||||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
procps \
|
||||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
|
||||||
} | tee /etc/apt/sources.list
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,15 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& rm -f /etc/apt/sources.list \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& { \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
dpkg-dev \
|
||||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
procps \
|
||||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
|
||||||
} | tee /etc/apt/sources.list
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
# 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>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
@@ -44,15 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& rm -f /etc/apt/sources.list \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& { \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
dpkg-dev \
|
||||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
procps \
|
||||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
|
||||||
} | tee /etc/apt/sources.list
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead.
|
# 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>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
|
||||||
@@ -44,15 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& rm -f /etc/apt/sources.list \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& { \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
dpkg-dev \
|
||||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
procps \
|
||||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
|
||||||
} | tee /etc/apt/sources.list
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -44,8 +44,10 @@ RUN set -eux \
|
|||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
dpkg-dev \
|
||||||
|
procps \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
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"]
|
||||||
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
|
||||||
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
|
||||||
@@ -6,9 +6,8 @@ FROM devilbox/php-fpm:5.2-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
@@ -26,24 +25,46 @@ RUN set -eux \
|
|||||||
libmagic-dev \
|
libmagic-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libmysqlclient-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librecode-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
snmp \
|
snmp \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -60,29 +81,12 @@ RUN set -eux \
|
|||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Custom extension
|
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
|
||||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
|
||||||
&& tar xvfz ioncube.tar.gz \
|
|
||||||
&& cd ioncube \
|
|
||||||
&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
|
||||||
&& cd ../ \
|
|
||||||
&& rm -rf ioncube \
|
|
||||||
&& rm -rf ioncube.tar.gz \
|
|
||||||
\
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: amqp --------------------
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install amqp-1.4.0 \
|
&& pecl install amqp-1.6.1 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable amqp \
|
&& docker-php-ext-enable amqp \
|
||||||
&& true
|
&& true
|
||||||
@@ -150,22 +154,12 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ftp --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
# Custom: configure command
|
|
||||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Version specific pre-command
|
# Version specific pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||||
ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||||
ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||||
mkdir /usr/include/freetype2/freetype && \
|
mkdir /usr/include/freetype2/freetype && \
|
||||||
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||||
\
|
\
|
||||||
@@ -200,7 +194,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -231,7 +225,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -293,6 +287,25 @@ RUN set -eux \
|
|||||||
&& true
|
&& 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 --------------------
|
# -------------------- Installing PHP Extension: oauth --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -326,7 +339,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -341,6 +354,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& 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 --------------------
|
# -------------------- Installing PHP Extension: pdo_pgsql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -376,14 +400,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: recode --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: redis --------------------
|
# -------------------- Installing PHP Extension: redis --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -413,6 +429,16 @@ RUN set -eux \
|
|||||||
&& true
|
&& 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 --------------------
|
# -------------------- Installing PHP Extension: sockets --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -459,7 +485,7 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
@@ -527,9 +553,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -556,6 +582,42 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="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 \
|
||||||
|
libpng12-0 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq1 \
|
||||||
|
librecode0 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy-0.99-0 \
|
||||||
|
libvpx1 \
|
||||||
|
libwebp5 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
snmp \
|
||||||
|
zlib1g \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -568,39 +630,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libfbclient2 \
|
|
||||||
libfreetype6 \
|
|
||||||
libicu52 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libmysqlclient18 \
|
|
||||||
libpng12-0 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq1 \
|
|
||||||
librecode0 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy-0.99-0 \
|
|
||||||
libvpx1 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
snmp \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
###
|
###
|
||||||
### Verify
|
### Verify
|
||||||
@@ -679,6 +709,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
&& php -m | grep -oiE '^memcached$' \
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
&& php-fpm -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 -m | grep -oiE '^mongo$' \
|
||||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||||
&& php -m | grep -oiE '^mysql$' \
|
&& php -m | grep -oiE '^mysql$' \
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ FROM devilbox/php-fpm:5.3-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
@@ -28,6 +28,7 @@ RUN set -eux \
|
|||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libmysqlclient-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
@@ -40,14 +41,37 @@ RUN set -eux \
|
|||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -64,23 +88,6 @@ RUN set -eux \
|
|||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Custom extension
|
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
|
||||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
|
||||||
&& tar xvfz ioncube.tar.gz \
|
|
||||||
&& cd ioncube \
|
|
||||||
&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
|
||||||
&& cd ../ \
|
|
||||||
&& rm -rf ioncube \
|
|
||||||
&& rm -rf ioncube.tar.gz \
|
|
||||||
\
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: amqp --------------------
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -151,20 +158,15 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ftp --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
# Custom: configure command
|
|
||||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Version specific pre-command
|
# Version specific pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||||
|
mkdir /usr/include/freetype2/freetype && \
|
||||||
|
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||||
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -185,7 +187,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -206,7 +208,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -235,7 +237,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -244,14 +246,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
# -------------------- Installing PHP Extension: mcrypt --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -316,10 +310,21 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
# -------------------- Installing PHP Extension: mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# 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 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -338,19 +343,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -358,7 +371,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -388,7 +401,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -405,10 +418,11 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Default: configure command
|
||||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -510,17 +524,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-1.9.23 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -559,12 +562,23 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid-1.0.5 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: wddx --------------------
|
# -------------------- Installing PHP Extension: wddx --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -626,6 +640,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-1.9.23 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -638,9 +663,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -668,26 +693,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-mods"
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Install runtime libraries
|
||||||
###
|
|
||||||
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/
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
libaio1 \
|
libaio1 \
|
||||||
libaspell15 \
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
libc-client2007e \
|
libc-client2007e \
|
||||||
libenchant1c2a \
|
libenchant1c2a \
|
||||||
|
libevent-2.0-5 \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6 \
|
libfreetype6 \
|
||||||
libicu52 \
|
libicu52 \
|
||||||
@@ -701,13 +717,17 @@ RUN set -eux \
|
|||||||
librabbitmq1 \
|
librabbitmq1 \
|
||||||
librdkafka1 \
|
librdkafka1 \
|
||||||
librecode0 \
|
librecode0 \
|
||||||
|
libssl1.0.0 \
|
||||||
libsybdb5 \
|
libsybdb5 \
|
||||||
libtidy-0.99-0 \
|
libtidy-0.99-0 \
|
||||||
libvpx1 \
|
libvpx1 \
|
||||||
|
libwebp5 \
|
||||||
libxpm4 \
|
libxpm4 \
|
||||||
libxslt1.1 \
|
libxslt1.1 \
|
||||||
libyaml-0-2 \
|
libyaml-0-2 \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid \
|
||||||
|
zlib1g \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
@@ -715,11 +735,22 @@ RUN set -eux \
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Post Install
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install executions
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -808,6 +839,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
&& php -m | grep -oiE '^memcached$' \
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
&& php-fpm -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 -m | grep -oiE '^mongo$' \
|
||||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||||
&& php -m | grep -oiE '^mongodb$' \
|
&& php -m | grep -oiE '^mongodb$' \
|
||||||
@@ -875,8 +908,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -889,6 +920,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
@@ -907,6 +940,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ FROM devilbox/php-fpm:5.4-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
@@ -28,6 +28,7 @@ RUN set -eux \
|
|||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libmysqlclient-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
@@ -40,14 +41,37 @@ RUN set -eux \
|
|||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -64,23 +88,6 @@ RUN set -eux \
|
|||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ioncube --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Custom extension
|
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
|
||||||
&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \
|
|
||||||
&& tar xvfz ioncube.tar.gz \
|
|
||||||
&& cd ioncube \
|
|
||||||
&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
|
||||||
&& cd ../ \
|
|
||||||
&& rm -rf ioncube \
|
|
||||||
&& rm -rf ioncube.tar.gz \
|
|
||||||
\
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: amqp --------------------
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -107,7 +114,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install bcmath \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -115,7 +122,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install bz2 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -123,7 +130,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install calendar \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -131,7 +138,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install dba \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -139,7 +146,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install enchant \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -147,30 +154,25 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install exif \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ftp --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
# Custom: configure command
|
|
||||||
&& docker-php-ext-configure ftp --with-openssl-dir \
|
|
||||||
&& docker-php-ext-install ftp \
|
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Version specific pre-command
|
# Version specific pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||||
|
mkdir /usr/include/freetype2/freetype && \
|
||||||
|
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||||
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
&& docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install gd \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -178,17 +180,17 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install gettext \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -206,12 +208,12 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
&& docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \
|
||||||
&& docker-php-ext-install imap \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -219,7 +221,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install interbase \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -228,27 +230,19 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install intl \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
&& docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \
|
||||||
&& docker-php-ext-install ldap \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mbstring --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install mbstring \
|
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -257,7 +251,7 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install mcrypt \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -320,15 +314,18 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install mysql \
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install mysqli \
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -346,27 +343,35 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -389,17 +394,17 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pcntl \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -407,17 +412,18 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pdo_firebird \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Default: configure command
|
||||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
&& docker-php-ext-install pdo_mysql \
|
# Installation
|
||||||
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -425,7 +431,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pdo_pgsql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -433,7 +439,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pgsql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -467,7 +473,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install pspell \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -497,7 +503,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install shmop \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -507,7 +513,7 @@ RUN set -eux \
|
|||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure snmp --with-openssl-dir \
|
&& docker-php-ext-configure snmp --with-openssl-dir \
|
||||||
&& docker-php-ext-install snmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -517,7 +523,7 @@ RUN set -eux \
|
|||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
&& docker-php-ext-configure soap --with-libxml-dir=/usr \
|
||||||
&& docker-php-ext-install soap \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -525,18 +531,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install sockets \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-1.9.23 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -544,7 +539,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install sysvmsg \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -552,7 +547,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install sysvsem \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -560,7 +555,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install sysvshm \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -569,7 +564,7 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install tidy \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -578,19 +573,30 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid-1.0.5 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: wddx --------------------
|
# -------------------- Installing PHP Extension: wddx --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
&& docker-php-ext-configure wddx --with-libxml-dir=/usr \
|
||||||
&& docker-php-ext-install wddx \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -611,7 +617,7 @@ RUN set -eux \
|
|||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
&& docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \
|
||||||
&& docker-php-ext-install xmlrpc \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -619,7 +625,7 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install xsl \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -641,7 +647,18 @@ RUN set -eux \
|
|||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
&& docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install zip \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-1.9.23 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
@@ -657,9 +674,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -687,26 +704,17 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-mods"
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Install runtime libraries
|
||||||
###
|
|
||||||
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/
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
libaio1 \
|
libaio1 \
|
||||||
libaspell15 \
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
libc-client2007e \
|
libc-client2007e \
|
||||||
libenchant1c2a \
|
libenchant1c2a \
|
||||||
|
libevent-2.0-5 \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6 \
|
libfreetype6 \
|
||||||
libicu52 \
|
libicu52 \
|
||||||
@@ -720,13 +728,17 @@ RUN set -eux \
|
|||||||
librabbitmq1 \
|
librabbitmq1 \
|
||||||
librdkafka1 \
|
librdkafka1 \
|
||||||
librecode0 \
|
librecode0 \
|
||||||
|
libssl1.0.0 \
|
||||||
libsybdb5 \
|
libsybdb5 \
|
||||||
libtidy-0.99-0 \
|
libtidy-0.99-0 \
|
||||||
libvpx1 \
|
libvpx1 \
|
||||||
|
libwebp5 \
|
||||||
libxpm4 \
|
libxpm4 \
|
||||||
libxslt1.1 \
|
libxslt1.1 \
|
||||||
libyaml-0-2 \
|
libyaml-0-2 \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid \
|
||||||
|
zlib1g \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
@@ -734,11 +746,22 @@ RUN set -eux \
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Post Install
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install executions
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -827,6 +850,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
&& php -m | grep -oiE '^memcached$' \
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
&& php-fpm -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 -m | grep -oiE '^mongo$' \
|
||||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||||
&& php -m | grep -oiE '^mongodb$' \
|
&& php -m | grep -oiE '^mongodb$' \
|
||||||
@@ -896,8 +921,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -910,6 +933,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
@@ -928,6 +953,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,15 +6,15 @@ FROM devilbox/php-fpm:5.5-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
@@ -30,6 +30,7 @@ RUN set -eux \
|
|||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libmysqlclient-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
@@ -37,21 +38,42 @@ RUN set -eux \
|
|||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librecode-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp5 \
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -74,7 +96,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -158,7 +180,12 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Version specific pre-command
|
# Version specific pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libjpeg.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libpng.* /usr/lib/ && \
|
||||||
|
ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ && \
|
||||||
|
mkdir /usr/include/freetype2/freetype && \
|
||||||
|
ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \
|
||||||
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -179,7 +206,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -222,7 +249,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -251,7 +278,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -328,14 +355,17 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# 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 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -354,19 +384,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -374,7 +412,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -401,7 +439,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -418,10 +456,11 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Default: configure command
|
||||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -476,14 +515,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: recode --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: redis --------------------
|
# -------------------- Installing PHP Extension: redis --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -542,17 +573,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-1.9.23 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -591,12 +611,23 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid-1.0.5 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: wddx --------------------
|
# -------------------- Installing PHP Extension: wddx --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -658,6 +689,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-1.9.23 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -670,9 +712,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -700,27 +742,18 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-mods"
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Install runtime libraries
|
||||||
###
|
|
||||||
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/
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
libaio1 \
|
libaio1 \
|
||||||
libaspell15 \
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
libc-client2007e \
|
libc-client2007e \
|
||||||
libenchant1c2a \
|
libenchant1c2a \
|
||||||
|
libevent-2.0-5 \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6 \
|
libfreetype6 \
|
||||||
libicu52 \
|
libicu52 \
|
||||||
@@ -735,6 +768,7 @@ RUN set -eux \
|
|||||||
librabbitmq1 \
|
librabbitmq1 \
|
||||||
librdkafka1 \
|
librdkafka1 \
|
||||||
librecode0 \
|
librecode0 \
|
||||||
|
libssl1.0.0 \
|
||||||
libsybdb5 \
|
libsybdb5 \
|
||||||
libtidy-0.99-0 \
|
libtidy-0.99-0 \
|
||||||
libvpx1 \
|
libvpx1 \
|
||||||
@@ -743,6 +777,8 @@ RUN set -eux \
|
|||||||
libxslt1.1 \
|
libxslt1.1 \
|
||||||
libyaml-0-2 \
|
libyaml-0-2 \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid \
|
||||||
|
zlib1g \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
@@ -750,7 +786,18 @@ RUN set -eux \
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Post Install
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install executions
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -765,7 +812,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -856,6 +903,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
&& php -m | grep -oiE '^memcached$' \
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
&& php-fpm -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 -m | grep -oiE '^mongo$' \
|
||||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||||
&& php -m | grep -oiE '^mongodb$' \
|
&& php -m | grep -oiE '^mongodb$' \
|
||||||
@@ -925,8 +974,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -939,6 +986,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
@@ -957,6 +1006,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,15 +6,15 @@ FROM devilbox/php-fpm:5.6-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
@@ -28,6 +28,7 @@ RUN set -eux \
|
|||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadbclient-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
@@ -44,16 +45,37 @@ RUN set -eux \
|
|||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -76,7 +98,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -174,7 +196,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Version specific pre-command
|
# Version specific pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -195,7 +217,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -238,7 +260,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -267,7 +289,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -344,6 +366,8 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Default: configure command
|
||||||
|
&& docker-php-ext-configure mysql --with-mysql --with-mysql-sock --with-zlib-dir=/usr --with-libdir="/lib/$(dpkg-architecture --query DEB_BUILD_MULTIARCH)" \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \
|
||||||
&& true
|
&& true
|
||||||
@@ -351,8 +375,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -371,19 +396,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -391,7 +424,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -418,7 +451,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -435,10 +468,11 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Default: configure command
|
||||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -559,17 +593,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-1.9.23 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -608,12 +631,23 @@ RUN set -eux \
|
|||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid-1.0.5 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: wddx --------------------
|
# -------------------- Installing PHP Extension: wddx --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -674,6 +708,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-1.9.23 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -686,9 +731,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -716,27 +761,18 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-mods"
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Install runtime libraries
|
||||||
###
|
|
||||||
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/
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
libaio1 \
|
libaio1 \
|
||||||
libaspell15 \
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
libc-client2007e \
|
libc-client2007e \
|
||||||
libenchant1c2a \
|
libenchant1c2a \
|
||||||
|
libevent-2.0-5 \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6 \
|
libfreetype6 \
|
||||||
libicu57 \
|
libicu57 \
|
||||||
@@ -760,6 +796,7 @@ RUN set -eux \
|
|||||||
libyaml-0-2 \
|
libyaml-0-2 \
|
||||||
libzip4 \
|
libzip4 \
|
||||||
snmp \
|
snmp \
|
||||||
|
uuid \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
@@ -767,7 +804,18 @@ RUN set -eux \
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Post Install
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install executions
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -782,7 +830,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -873,6 +921,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^memcache$' \
|
&& php-fpm -m | grep -oiE '^memcache$' \
|
||||||
&& php -m | grep -oiE '^memcached$' \
|
&& php -m | grep -oiE '^memcached$' \
|
||||||
&& php-fpm -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 -m | grep -oiE '^mongo$' \
|
||||||
&& php-fpm -m | grep -oiE '^mongo$' \
|
&& php-fpm -m | grep -oiE '^mongo$' \
|
||||||
&& php -m | grep -oiE '^mongodb$' \
|
&& php -m | grep -oiE '^mongodb$' \
|
||||||
@@ -942,8 +992,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sockets$' \
|
&& php-fpm -m | grep -oiE '^sockets$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -956,6 +1004,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
&& php-fpm -m | grep -oiE '^wddx$' \
|
&& php-fpm -m | grep -oiE '^wddx$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
@@ -974,6 +1024,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,61 +6,48 @@ FROM devilbox/php-fpm:7.0-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
fftw-dev \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
gobject-introspection \
|
|
||||||
gtk-doc-tools \
|
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libexif-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfftw3-dev \
|
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libgif-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libib-util \
|
libib-util \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagick++-dev \
|
|
||||||
libmagickcore-6.q16-dev \
|
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadbclient-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpoppler-glib-dev \
|
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librecode-dev \
|
librecode-dev \
|
||||||
librsvg2-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libtool \
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux2 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
@@ -68,9 +55,31 @@ RUN set -eux \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -93,7 +102,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -191,7 +200,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -212,7 +221,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -255,7 +264,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -284,7 +293,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -326,10 +335,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Custom: Pecl command
|
||||||
&& pecl install memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -337,10 +346,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install mongodb \
|
&& pecl install mongodb-1.9.2 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable mongodb \
|
&& docker-php-ext-enable mongodb \
|
||||||
&& true
|
&& true
|
||||||
@@ -348,8 +357,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: mysqli --------------------
|
# -------------------- Installing PHP Extension: mysqli --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -368,19 +378,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -388,7 +406,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -415,7 +433,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -432,10 +450,11 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
# -------------------- Installing PHP Extension: pdo_mysql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Default: configure command
|
||||||
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
&& docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -443,19 +462,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -495,10 +522,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: psr --------------------
|
# -------------------- Installing PHP Extension: psr --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install psr \
|
&& pecl install psr-1.1.0 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable psr \
|
&& docker-php-ext-enable psr \
|
||||||
&& true
|
&& true
|
||||||
@@ -630,17 +657,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-4.2.13 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -676,31 +692,28 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
# Default: Pecl command
|
||||||
&& cd /tmp/uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Default: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-uploadprogress \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: vips --------------------
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
|
||||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
|
||||||
&& cd /tmp/libvips \
|
|
||||||
&& ./autogen.sh \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
&& cd /tmp \
|
|
||||||
&& rm -rf /tmp/libvips \
|
|
||||||
\
|
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
@@ -781,6 +794,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-4.2.13 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -793,9 +817,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -822,6 +846,52 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libenchant1c2a \
|
||||||
|
libevent-2.0-5 \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu57 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-3 \
|
||||||
|
libmariadbclient18 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
librecode0 \
|
||||||
|
libssh2-1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx4 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -834,65 +904,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
fftw2 \
|
|
||||||
ghostscript \
|
|
||||||
gir1.2-poppler-0.18 \
|
|
||||||
imagemagick-6.q16 \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libexif12 \
|
|
||||||
libexpat1 \
|
|
||||||
libfbclient2 \
|
|
||||||
libfftw3-3 \
|
|
||||||
libfreetype6 \
|
|
||||||
libgif7 \
|
|
||||||
libglib2.0-0 \
|
|
||||||
libicu57 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmagick++-6.q16-7 \
|
|
||||||
libmagick++-6.q16hdri-7 \
|
|
||||||
libmagickcore-6.q16-3 \
|
|
||||||
libmagickcore-6.q16-3-extra \
|
|
||||||
libmagickwand-6.q16-3 \
|
|
||||||
libmagickwand-6.q16hdri-3 \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libnghttp2-14 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpoppler-glib8 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq4 \
|
|
||||||
librdkafka1 \
|
|
||||||
librecode0 \
|
|
||||||
librsvg2-2 \
|
|
||||||
libssh2-1 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5 \
|
|
||||||
libvpx4 \
|
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux2 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
unixodbc \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -907,7 +919,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -1071,8 +1083,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^ssh2$' \
|
&& php -m | grep -oiE '^ssh2$' \
|
||||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -1085,6 +1095,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^vips$' \
|
&& php -m | grep -oiE '^vips$' \
|
||||||
&& php-fpm -m | grep -oiE '^vips$' \
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
@@ -1107,6 +1119,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,62 +6,48 @@ FROM devilbox/php-fpm:7.1-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
fftw-dev \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
gobject-introspection \
|
|
||||||
gtk-doc-tools \
|
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libexif-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfftw3-dev \
|
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libgif-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libib-util \
|
libib-util \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libimagequant-dev \
|
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagick++-dev \
|
|
||||||
libmagickcore-6.q16-dev \
|
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpoppler-glib-dev \
|
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librecode-dev \
|
librecode-dev \
|
||||||
librsvg2-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libtool \
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
@@ -69,9 +55,31 @@ RUN set -eux \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -94,7 +102,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_7.1.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -192,7 +200,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -213,7 +221,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -256,7 +264,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -275,8 +283,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: intl --------------------
|
# -------------------- Installing PHP Extension: intl --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -284,7 +293,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -326,10 +335,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Custom: Pecl command
|
||||||
&& pecl install memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -337,10 +346,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: mongodb --------------------
|
# -------------------- Installing PHP Extension: mongodb --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install mongodb \
|
&& pecl install mongodb-1.11.1 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable mongodb \
|
&& docker-php-ext-enable mongodb \
|
||||||
&& true
|
&& true
|
||||||
@@ -368,19 +377,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -388,7 +405,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -415,7 +432,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -443,19 +460,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -495,10 +520,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: psr --------------------
|
# -------------------- Installing PHP Extension: psr --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install psr \
|
&& pecl install psr-1.1.0 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable psr \
|
&& docker-php-ext-enable psr \
|
||||||
&& true
|
&& true
|
||||||
@@ -641,17 +666,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Version specific
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install swoole-4.4.26 \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -686,31 +700,28 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
# Default: Pecl command
|
||||||
&& cd /tmp/uploadprogress \
|
&& pecl install uploadprogress-1.1.4 \
|
||||||
# Default: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-uploadprogress \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: vips --------------------
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
|
||||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
|
||||||
&& cd /tmp/libvips \
|
|
||||||
&& ./autogen.sh \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
&& cd /tmp \
|
|
||||||
&& rm -rf /tmp/libvips \
|
|
||||||
\
|
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
@@ -791,6 +802,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-4.4.26 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -803,9 +825,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -832,6 +854,52 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libenchant1c2a \
|
||||||
|
libevent-2.1-6 \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu63 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
librecode0 \
|
||||||
|
libssh2-1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx5 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -844,67 +912,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
fftw2 \
|
|
||||||
ghostscript \
|
|
||||||
gir1.2-poppler-0.18 \
|
|
||||||
imagemagick-6.q16 \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libexif12 \
|
|
||||||
libexpat1 \
|
|
||||||
libfbclient2 \
|
|
||||||
libfftw3-3 \
|
|
||||||
libfreetype6 \
|
|
||||||
libgif7 \
|
|
||||||
libglib2.0-0 \
|
|
||||||
libicu63 \
|
|
||||||
libimagequant0 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmagick++-6.q16-8 \
|
|
||||||
libmagick++-6.q16hdri-8 \
|
|
||||||
libmagickcore-6.q16-6 \
|
|
||||||
libmagickcore-6.q16-6-extra \
|
|
||||||
libmagickwand-6.q16-6 \
|
|
||||||
libmagickwand-6.q16hdri-6 \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libnghttp2-14 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpoppler-glib8 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq4 \
|
|
||||||
librdkafka1 \
|
|
||||||
librecode0 \
|
|
||||||
librsvg2-2 \
|
|
||||||
libssh2-1 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp-dev \
|
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
unixodbc \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -919,7 +927,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -1085,8 +1093,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^ssh2$' \
|
&& php -m | grep -oiE '^ssh2$' \
|
||||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -1099,6 +1105,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^vips$' \
|
&& php -m | grep -oiE '^vips$' \
|
||||||
&& php-fpm -m | grep -oiE '^vips$' \
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
@@ -1121,6 +1129,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,62 +6,48 @@ FROM devilbox/php-fpm:7.2-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
fftw-dev \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
gobject-introspection \
|
|
||||||
gtk-doc-tools \
|
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-dev \
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libexif-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfftw3-dev \
|
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libgif-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libib-util \
|
libib-util \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libimagequant-dev \
|
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagick++-dev \
|
|
||||||
libmagickcore-6.q16-dev \
|
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpoppler-glib-dev \
|
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librecode-dev \
|
librecode-dev \
|
||||||
librsvg2-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libtool \
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
@@ -69,9 +55,31 @@ RUN set -eux \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -94,7 +102,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_7.2.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -192,7 +200,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -213,7 +221,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -256,7 +264,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -275,8 +283,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: intl --------------------
|
# -------------------- Installing PHP Extension: intl --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
@@ -284,7 +293,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -328,10 +337,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Custom: Pecl command
|
||||||
&& pecl install memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -370,19 +379,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -390,7 +407,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -417,7 +434,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -445,19 +462,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -498,10 +523,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: psr --------------------
|
# -------------------- Installing PHP Extension: psr --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install psr \
|
&& pecl install psr-1.1.0 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable psr \
|
&& docker-php-ext-enable psr \
|
||||||
&& true
|
&& true
|
||||||
@@ -509,12 +534,12 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: GIT extension
|
# Type: GIT extension
|
||||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||||
&& cd /tmp/phalcon \
|
&& cd /tmp/phalcon \
|
||||||
# Custom: Branch
|
# Custom: Branch
|
||||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
&& git checkout v4.1.1 \
|
||||||
# Custom: Install command
|
# Custom: Install command
|
||||||
&& cd build && ./install \
|
&& cd build && ./install \
|
||||||
# Enabling
|
# Enabling
|
||||||
@@ -644,17 +669,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: PECL extension
|
|
||||||
# Custom: Pecl command
|
|
||||||
&& yes yes | pecl install swoole \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -690,30 +704,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
# Default: Pecl command
|
||||||
&& cd /tmp/uploadprogress \
|
&& pecl install uploadprogress \
|
||||||
# Default: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-uploadprogress \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: vips --------------------
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
|
||||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
|
||||||
&& cd /tmp/libvips \
|
|
||||||
&& ./autogen.sh \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
&& cd /tmp \
|
|
||||||
&& rm -rf /tmp/libvips \
|
|
||||||
\
|
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
@@ -794,6 +805,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-4.8.12 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -806,9 +828,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -835,6 +857,52 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libenchant1c2a \
|
||||||
|
libevent-2.1-6 \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu63 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
librecode0 \
|
||||||
|
libssh2-1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx5 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -847,67 +915,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
fftw2 \
|
|
||||||
ghostscript \
|
|
||||||
gir1.2-poppler-0.18 \
|
|
||||||
imagemagick-6.q16 \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libexif12 \
|
|
||||||
libexpat1 \
|
|
||||||
libfbclient2 \
|
|
||||||
libfftw3-3 \
|
|
||||||
libfreetype6 \
|
|
||||||
libgif7 \
|
|
||||||
libglib2.0-0 \
|
|
||||||
libicu63 \
|
|
||||||
libimagequant0 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmagick++-6.q16-8 \
|
|
||||||
libmagick++-6.q16hdri-8 \
|
|
||||||
libmagickcore-6.q16-6 \
|
|
||||||
libmagickcore-6.q16-6-extra \
|
|
||||||
libmagickwand-6.q16-6 \
|
|
||||||
libmagickwand-6.q16hdri-6 \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libnghttp2-14 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpoppler-glib8 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq4 \
|
|
||||||
librdkafka1 \
|
|
||||||
librecode0 \
|
|
||||||
librsvg2-2 \
|
|
||||||
libssh2-1 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp-dev \
|
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
unixodbc \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -922,7 +930,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -1090,8 +1098,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^ssh2$' \
|
&& php -m | grep -oiE '^ssh2$' \
|
||||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -1104,6 +1110,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^vips$' \
|
&& php -m | grep -oiE '^vips$' \
|
||||||
&& php-fpm -m | grep -oiE '^vips$' \
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
@@ -1126,6 +1134,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,62 +6,47 @@ FROM devilbox/php-fpm:7.3-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
fftw-dev \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
gobject-introspection \
|
|
||||||
gtk-doc-tools \
|
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libexif-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfftw3-dev \
|
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libgif-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libib-util \
|
libib-util \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libimagequant-dev \
|
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagick++-dev \
|
|
||||||
libmagickcore-6.q16-dev \
|
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpoppler-glib-dev \
|
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librecode-dev \
|
librecode-dev \
|
||||||
librsvg2-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libtool \
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
@@ -69,9 +54,31 @@ RUN set -eux \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -94,7 +101,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_7.3.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -173,14 +180,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: enchant --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: exif --------------------
|
# -------------------- Installing PHP Extension: exif --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -192,7 +191,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -213,7 +212,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -256,7 +255,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -284,7 +283,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -330,8 +329,8 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Custom: Pecl command
|
||||||
&& pecl install memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -370,19 +369,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -390,7 +397,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -417,7 +424,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -445,19 +452,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -479,10 +494,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install pdo_sqlsrv \
|
&& pecl install pdo_sqlsrv-5.9.0 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable pdo_sqlsrv \
|
&& docker-php-ext-enable pdo_sqlsrv \
|
||||||
&& true
|
&& true
|
||||||
@@ -509,12 +524,12 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: phalcon --------------------
|
# -------------------- Installing PHP Extension: phalcon --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: GIT extension
|
# Type: GIT extension
|
||||||
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
&& git clone https://github.com/phalcon/cphalcon /tmp/phalcon \
|
||||||
&& cd /tmp/phalcon \
|
&& cd /tmp/phalcon \
|
||||||
# Custom: Branch
|
# Custom: Branch
|
||||||
&& git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \
|
&& git checkout v4.1.2 \
|
||||||
# Custom: Install command
|
# Custom: Install command
|
||||||
&& cd build && ./install \
|
&& cd build && ./install \
|
||||||
# Enabling
|
# Enabling
|
||||||
@@ -624,10 +639,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Version specific
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
&& pecl install sqlsrv \
|
&& pecl install sqlsrv-5.9.0 \
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable sqlsrv \
|
&& docker-php-ext-enable sqlsrv \
|
||||||
&& true
|
&& true
|
||||||
@@ -644,17 +659,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: PECL extension
|
|
||||||
# Custom: Pecl command
|
|
||||||
&& yes yes | pecl install swoole \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -690,30 +694,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
# Default: Pecl command
|
||||||
&& cd /tmp/uploadprogress \
|
&& pecl install uploadprogress \
|
||||||
# Default: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-uploadprogress \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: vips --------------------
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
|
||||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
|
||||||
&& cd /tmp/libvips \
|
|
||||||
&& ./autogen.sh \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
&& cd /tmp \
|
|
||||||
&& rm -rf /tmp/libvips \
|
|
||||||
\
|
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
@@ -794,6 +795,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-4.8.12 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -806,9 +818,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -835,6 +847,51 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libevent-2.1-7 \
|
||||||
|
libfbclient2 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu67 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
librecode0 \
|
||||||
|
libssh2-1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx6 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -847,67 +904,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
fftw2 \
|
|
||||||
ghostscript \
|
|
||||||
gir1.2-poppler-0.18 \
|
|
||||||
imagemagick-6.q16 \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libexif12 \
|
|
||||||
libexpat1 \
|
|
||||||
libfbclient2 \
|
|
||||||
libfftw3-3 \
|
|
||||||
libfreetype6 \
|
|
||||||
libgif7 \
|
|
||||||
libglib2.0-0 \
|
|
||||||
libicu63 \
|
|
||||||
libimagequant0 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmagick++-6.q16-8 \
|
|
||||||
libmagick++-6.q16hdri-8 \
|
|
||||||
libmagickcore-6.q16-6 \
|
|
||||||
libmagickcore-6.q16-6-extra \
|
|
||||||
libmagickwand-6.q16-6 \
|
|
||||||
libmagickwand-6.q16hdri-6 \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libnghttp2-14 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpoppler-glib8 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq4 \
|
|
||||||
librdkafka1 \
|
|
||||||
librecode0 \
|
|
||||||
librsvg2-2 \
|
|
||||||
libssh2-1 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp-dev \
|
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
unixodbc \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -922,7 +919,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -967,8 +964,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^dba$' \
|
&& php-fpm -m | grep -oiE '^dba$' \
|
||||||
&& php -m | grep -oiE '^dom$' \
|
&& php -m | grep -oiE '^dom$' \
|
||||||
&& php-fpm -m | grep -oiE '^dom$' \
|
&& php-fpm -m | grep -oiE '^dom$' \
|
||||||
&& php -m | grep -oiE '^enchant$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
|
||||||
&& php -m | grep -oiE '^exif$' \
|
&& php -m | grep -oiE '^exif$' \
|
||||||
&& php-fpm -m | grep -oiE '^exif$' \
|
&& php-fpm -m | grep -oiE '^exif$' \
|
||||||
&& php -m | grep -oiE '^fileinfo$' \
|
&& php -m | grep -oiE '^fileinfo$' \
|
||||||
@@ -1090,8 +1085,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^ssh2$' \
|
&& php -m | grep -oiE '^ssh2$' \
|
||||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -1104,6 +1097,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^vips$' \
|
&& php -m | grep -oiE '^vips$' \
|
||||||
&& php-fpm -m | grep -oiE '^vips$' \
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^wddx$' \
|
&& php -m | grep -oiE '^wddx$' \
|
||||||
@@ -1126,6 +1121,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,62 +6,47 @@ FROM devilbox/php-fpm:7.4-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
fftw-dev \
|
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
gobject-introspection \
|
|
||||||
gtk-doc-tools \
|
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libexif-dev \
|
|
||||||
libexpat1-dev \
|
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
libfftw3-dev \
|
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
libgif-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgmp-dev \
|
libgmp-dev \
|
||||||
libib-util \
|
libib-util \
|
||||||
libicu-dev \
|
libicu-dev \
|
||||||
libimagequant-dev \
|
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmagick++-dev \
|
|
||||||
libmagickcore-6.q16-dev \
|
|
||||||
libmagickwand-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
libnghttp2-dev \
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpoppler-glib-dev \
|
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
librabbitmq-dev \
|
librabbitmq-dev \
|
||||||
librdkafka-dev \
|
librdkafka-dev \
|
||||||
librsvg2-dev \
|
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libssh2-1-dev \
|
libssh2-1-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
libtool \
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
libxpm-dev \
|
libxpm-dev \
|
||||||
libxslt-dev \
|
libxslt-dev \
|
||||||
@@ -69,9 +54,31 @@ RUN set -eux \
|
|||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
unixodbc-dev \
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -94,7 +101,7 @@ RUN set -eux \
|
|||||||
# Type: Custom extension
|
# Type: Custom extension
|
||||||
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
&& EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \
|
||||||
&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \
|
&& 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 \
|
&& curl -sS --fail -k https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_$(dpkg-architecture --query DEB_HOST_GNU_CPU | sed 's/_/-/g').tar.gz -L -o ioncube.tar.gz \
|
||||||
&& tar xvfz ioncube.tar.gz \
|
&& tar xvfz ioncube.tar.gz \
|
||||||
&& cd ioncube \
|
&& cd ioncube \
|
||||||
&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
&& cp "ioncube_loader_lin_7.4.so" "${EXTENSION_DIR}/ioncube.so" \
|
||||||
@@ -173,14 +180,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: enchant --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: Built-in extension
|
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: exif --------------------
|
# -------------------- Installing PHP Extension: exif --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -192,24 +191,15 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ffi --------------------
|
# -------------------- Installing PHP Extension: ffi --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: Built-in extension
|
||||||
&& git clone https://github.com/dstogov/php-ffi /tmp/ffi \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ffi \
|
||||||
&& cd /tmp/ffi \
|
|
||||||
# Custom: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --with-ffi \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
\
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable ffi \
|
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -230,7 +220,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -273,7 +263,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -293,7 +283,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -337,14 +327,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
# Custom: Pecl command
|
||||||
&& cd /tmp/memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Custom: Branch
|
|
||||||
&& git checkout master \
|
|
||||||
# Custom: Install command
|
|
||||||
&& phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -383,19 +369,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -403,7 +397,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -430,7 +424,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -458,19 +452,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -490,6 +492,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install pdo_sqlsrv \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable pdo_sqlsrv \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -581,6 +594,8 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure snmp --with-snmp \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \
|
||||||
&& true
|
&& true
|
||||||
@@ -590,6 +605,8 @@ RUN set -eux \
|
|||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
|
# Custom: configure command
|
||||||
|
&& docker-php-ext-configure soap --enable-soap \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \
|
||||||
&& true
|
&& true
|
||||||
@@ -636,17 +653,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: swoole --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: PECL extension
|
|
||||||
# Custom: Pecl command
|
|
||||||
&& yes yes | pecl install swoole \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable swoole \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -682,30 +688,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \
|
# Default: Pecl command
|
||||||
&& cd /tmp/uploadprogress \
|
&& pecl install uploadprogress \
|
||||||
# Default: Install command
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-uploadprogress \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable uploadprogress \
|
&& docker-php-ext-enable uploadprogress \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: vips --------------------
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
|
||||||
&& git clone https://github.com/libvips/libvips /tmp/libvips \
|
|
||||||
&& cd /tmp/libvips \
|
|
||||||
&& ./autogen.sh \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
&& cd /tmp \
|
|
||||||
&& rm -rf /tmp/libvips \
|
|
||||||
\
|
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: PECL extension
|
# Type: PECL extension
|
||||||
# Default: Pecl command
|
# Default: Pecl command
|
||||||
@@ -778,6 +781,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Version specific
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install swoole-4.8.12 \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -790,9 +804,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -819,6 +833,51 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libevent-2.1-7 \
|
||||||
|
libfbclient2 \
|
||||||
|
libffi7 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu67 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
libssh2-1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx6 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -831,67 +890,7 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
fftw2 \
|
|
||||||
ghostscript \
|
|
||||||
gir1.2-poppler-0.18 \
|
|
||||||
imagemagick-6.q16 \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libexif12 \
|
|
||||||
libexpat1 \
|
|
||||||
libfbclient2 \
|
|
||||||
libffi6 \
|
|
||||||
libfftw3-3 \
|
|
||||||
libfreetype6 \
|
|
||||||
libgif7 \
|
|
||||||
libglib2.0-0 \
|
|
||||||
libicu63 \
|
|
||||||
libimagequant0 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmagick++-6.q16-8 \
|
|
||||||
libmagick++-6.q16hdri-8 \
|
|
||||||
libmagickcore-6.q16-6 \
|
|
||||||
libmagickcore-6.q16-6-extra \
|
|
||||||
libmagickwand-6.q16-6 \
|
|
||||||
libmagickwand-6.q16hdri-6 \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libnghttp2-14 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpoppler-glib8 \
|
|
||||||
libpq5 \
|
|
||||||
librabbitmq4 \
|
|
||||||
librdkafka1 \
|
|
||||||
librsvg2-2 \
|
|
||||||
libssh2-1 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp-dev \
|
|
||||||
libwebp6 \
|
|
||||||
libwebpdemux2 \
|
|
||||||
libwebpmux3 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
unixodbc \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# ---------- imagick ----------
|
# ---------- imagick ----------
|
||||||
@@ -906,7 +905,7 @@ RUN set -eux \
|
|||||||
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
\
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -951,8 +950,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^dba$' \
|
&& php-fpm -m | grep -oiE '^dba$' \
|
||||||
&& php -m | grep -oiE '^dom$' \
|
&& php -m | grep -oiE '^dom$' \
|
||||||
&& php-fpm -m | grep -oiE '^dom$' \
|
&& php-fpm -m | grep -oiE '^dom$' \
|
||||||
&& php -m | grep -oiE '^enchant$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^enchant$' \
|
|
||||||
&& php -m | grep -oiE '^exif$' \
|
&& php -m | grep -oiE '^exif$' \
|
||||||
&& php-fpm -m | grep -oiE '^exif$' \
|
&& php-fpm -m | grep -oiE '^exif$' \
|
||||||
&& php -m | grep -oiE '^ffi$' \
|
&& php -m | grep -oiE '^ffi$' \
|
||||||
@@ -1029,6 +1026,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||||
&& php -m | grep -oiE '^pdo_sqlite$' \
|
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^pgsql$' \
|
&& php -m | grep -oiE '^pgsql$' \
|
||||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||||
&& php -m | grep -oiE '^psr$' \
|
&& php -m | grep -oiE '^psr$' \
|
||||||
@@ -1070,8 +1069,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^ssh2$' \
|
&& php -m | grep -oiE '^ssh2$' \
|
||||||
&& php-fpm -m | grep -oiE '^ssh2$' \
|
&& php-fpm -m | grep -oiE '^ssh2$' \
|
||||||
&& php -m | grep -oiE '^swoole$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^swoole$' \
|
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -1084,6 +1081,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
&& php -m | grep -oiE '^uploadprogress$' \
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
&& php -m | grep -oiE '^vips$' \
|
&& php -m | grep -oiE '^vips$' \
|
||||||
&& php-fpm -m | grep -oiE '^vips$' \
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
@@ -1104,6 +1103,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,17 +6,18 @@ FROM devilbox/php-fpm:8.0-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
freetds-dev \
|
freetds-dev \
|
||||||
|
ghostscript \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-2-dev \
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
@@ -26,17 +27,24 @@ RUN set -eux \
|
|||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmcrypt-dev \
|
libmcrypt-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
|
librabbitmq-dev \
|
||||||
|
librdkafka-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libsodium-dev \
|
libsodium-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
@@ -45,9 +53,32 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -64,6 +95,17 @@ RUN set -eux \
|
|||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& echo "/usr" | pecl install amqp \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable amqp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: apcu --------------------
|
# -------------------- Installing PHP Extension: apcu --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -140,7 +182,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -161,7 +203,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -179,10 +221,32 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: imagick --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install imagick \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable imagick \
|
||||||
|
# Generic post-command
|
||||||
|
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
\
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -202,7 +266,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -246,21 +310,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
# Custom: Pecl command
|
||||||
&& cd /tmp/memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Custom: Branch
|
|
||||||
&& git checkout master \
|
|
||||||
# Custom: Install command
|
|
||||||
&& true \
|
|
||||||
# FIXME: This is a work-around to mitigate compile error with PHP 8.0
|
|
||||||
&& sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-memcached \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
\
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -299,19 +352,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -319,7 +380,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -346,7 +407,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
# -------------------- Installing PHP Extension: pdo_dblib --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libsybdb.* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \
|
||||||
@@ -374,19 +435,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -406,6 +475,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install pdo_sqlsrv \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable pdo_sqlsrv \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -459,6 +539,17 @@ phpize \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install rdkafka \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable rdkafka \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: shmop --------------------
|
# -------------------- Installing PHP Extension: shmop --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -489,6 +580,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: sockets --------------------
|
# -------------------- Installing PHP Extension: sockets --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
|
# Version specific pre-command
|
||||||
|
&& docker-php-ext-configure sockets \
|
||||||
|
&& sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \
|
||||||
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||||
@@ -514,6 +609,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install sqlsrv \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable sqlsrv \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -546,6 +652,39 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uploadprogress \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uploadprogress \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install vips \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable vips \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -597,6 +736,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -609,9 +759,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -638,6 +788,51 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libenchant-2-2 \
|
||||||
|
libevent-2.1-7 \
|
||||||
|
libfbclient2 \
|
||||||
|
libffi7 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu67 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmcrypt4 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx6 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -650,45 +845,22 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libfbclient2 \
|
|
||||||
libffi6 \
|
|
||||||
libfreetype6 \
|
|
||||||
libicu63 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpq5 \
|
|
||||||
libsybdb5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp6 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
|
# ---------- imagick ----------
|
||||||
|
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -715,6 +887,8 @@ RUN set -eux \
|
|||||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
&& rm -f /usr/local/etc/php/php.ini \
|
&& rm -f /usr/local/etc/php/php.ini \
|
||||||
\
|
\
|
||||||
|
&& php -m | grep -oiE '^amqp$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||||
&& php -m | grep -oiE '^apcu$' \
|
&& php -m | grep -oiE '^apcu$' \
|
||||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||||
&& php -m | grep -oiE '^bcmath$' \
|
&& php -m | grep -oiE '^bcmath$' \
|
||||||
@@ -755,6 +929,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^iconv$' \
|
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||||
&& php -m | grep -oiE '^igbinary$' \
|
&& php -m | grep -oiE '^igbinary$' \
|
||||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||||
|
&& php -m | grep -oiE '^imagick$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||||
&& php -m | grep -oiE '^imap$' \
|
&& php -m | grep -oiE '^imap$' \
|
||||||
&& php-fpm -m | grep -oiE '^imap$' \
|
&& php-fpm -m | grep -oiE '^imap$' \
|
||||||
&& php -m | grep -oiE '^intl$' \
|
&& php -m | grep -oiE '^intl$' \
|
||||||
@@ -807,6 +983,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||||
&& php -m | grep -oiE '^pdo_sqlite$' \
|
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^pgsql$' \
|
&& php -m | grep -oiE '^pgsql$' \
|
||||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||||
&& php -m | grep -oiE '^psr$' \
|
&& php -m | grep -oiE '^psr$' \
|
||||||
@@ -822,6 +1000,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^redis$' \
|
&& php-fpm -m | grep -oiE '^redis$' \
|
||||||
&& php -m | grep -oiE '^reflection$' \
|
&& php -m | grep -oiE '^reflection$' \
|
||||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||||
|
&& php -m | grep -oiE '^rdkafka$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||||
&& php -m | grep -oiE '^session$' \
|
&& php -m | grep -oiE '^session$' \
|
||||||
&& php-fpm -m | grep -oiE '^session$' \
|
&& php-fpm -m | grep -oiE '^session$' \
|
||||||
&& php -m | grep -oiE '^shmop$' \
|
&& php -m | grep -oiE '^shmop$' \
|
||||||
@@ -840,6 +1020,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^solr$' \
|
&& php-fpm -m | grep -oiE '^solr$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
|
&& php -m | grep -oiE '^sqlsrv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -850,6 +1032,12 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tidy$' \
|
&& php-fpm -m | grep -oiE '^tidy$' \
|
||||||
&& php -m | grep -oiE '^tokenizer$' \
|
&& php -m | grep -oiE '^tokenizer$' \
|
||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
|
&& php -m | grep -oiE '^vips$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||||
&& php -m | grep -oiE '^xml$' \
|
&& php -m | grep -oiE '^xml$' \
|
||||||
@@ -866,6 +1054,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,16 +6,19 @@ FROM devilbox/php-fpm:8.1-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
alien \
|
alien \
|
||||||
firebird-dev \
|
firebird-dev \
|
||||||
|
freetds-dev \
|
||||||
|
ghostscript \
|
||||||
libaio-dev \
|
libaio-dev \
|
||||||
|
libavif-dev \
|
||||||
libbz2-dev \
|
libbz2-dev \
|
||||||
|
libc-ares-dev \
|
||||||
libc-client-dev \
|
libc-client-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libenchant-dev \
|
libenchant-2-dev \
|
||||||
libevent-dev \
|
libevent-dev \
|
||||||
libfbclient2 \
|
libfbclient2 \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
@@ -25,17 +28,23 @@ RUN set -eux \
|
|||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libkrb5-dev \
|
libkrb5-dev \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libmcrypt-dev \
|
libmagickwand-dev \
|
||||||
|
libmariadb-dev \
|
||||||
libmemcached-dev \
|
libmemcached-dev \
|
||||||
|
libnghttp2-dev \
|
||||||
libpcre3-dev \
|
libpcre3-dev \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libpspell-dev \
|
libpspell-dev \
|
||||||
|
librabbitmq-dev \
|
||||||
|
librdkafka-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsnmp-dev \
|
libsnmp-dev \
|
||||||
libsodium-dev \
|
libsodium-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libtidy-dev \
|
libtidy-dev \
|
||||||
|
libvips-dev \
|
||||||
|
libvips42 \
|
||||||
libvpx-dev \
|
libvpx-dev \
|
||||||
libwebp-dev \
|
libwebp-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
@@ -44,9 +53,32 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
libzip-dev \
|
libzip-dev \
|
||||||
snmp \
|
snmp \
|
||||||
|
unixodbc-dev \
|
||||||
|
uuid-dev \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -63,6 +95,17 @@ RUN set -eux \
|
|||||||
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: amqp --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& echo "/usr" | pecl install amqp \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable amqp \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: apcu --------------------
|
# -------------------- Installing PHP Extension: apcu --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -125,11 +168,11 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gd --------------------
|
# -------------------- Installing PHP Extension: gd --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libXpm.* /usr/lib/ \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype \
|
&& docker-php-ext-configure gd --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype --with-avif \
|
||||||
# Installation
|
# Installation
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
|
||||||
&& true
|
&& true
|
||||||
@@ -146,7 +189,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: gmp --------------------
|
# -------------------- Installing PHP Extension: gmp --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \
|
&& ln /usr/include/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/gmp.h /usr/include/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \
|
||||||
@@ -164,10 +207,32 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: imagick --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install imagick \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable imagick \
|
||||||
|
# Generic post-command
|
||||||
|
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
\
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: imap --------------------
|
# -------------------- Installing PHP Extension: imap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libkrb5* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -187,7 +252,7 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: ldap --------------------
|
# -------------------- Installing PHP Extension: ldap --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \
|
&& ln -s /usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)/libldap* /usr/lib/ \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
# Custom: configure command
|
# Custom: configure command
|
||||||
@@ -196,17 +261,6 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: mcrypt --------------------
|
|
||||||
RUN set -eux \
|
|
||||||
# Installation: Generic
|
|
||||||
# Type: PECL extension
|
|
||||||
# Default: Pecl command
|
|
||||||
&& pecl install mcrypt \
|
|
||||||
# Enabling
|
|
||||||
&& docker-php-ext-enable mcrypt \
|
|
||||||
&& true
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: msgpack --------------------
|
# -------------------- Installing PHP Extension: msgpack --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -231,21 +285,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: memcached --------------------
|
# -------------------- Installing PHP Extension: memcached --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Generic
|
||||||
# Type: GIT extension
|
# Type: PECL extension
|
||||||
&& git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \
|
# Custom: Pecl command
|
||||||
&& cd /tmp/memcached \
|
&& printf "\n\n\nyes\nyes\nyes\n" | pecl install memcached \
|
||||||
# Custom: Branch
|
|
||||||
&& git checkout master \
|
|
||||||
# Custom: Install command
|
|
||||||
&& true \
|
|
||||||
# FIXME: This is a work-around to mitigate compile error with PHP 8.1
|
|
||||||
&& sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \
|
|
||||||
&& phpize \
|
|
||||||
&& ./configure --enable-memcached \
|
|
||||||
&& make -j$(getconf _NPROCESSORS_ONLN) \
|
|
||||||
&& make install \
|
|
||||||
\
|
|
||||||
# Enabling
|
# Enabling
|
||||||
&& docker-php-ext-enable memcached \
|
&& docker-php-ext-enable memcached \
|
||||||
&& true
|
&& true
|
||||||
@@ -284,19 +327,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: oci8 --------------------
|
# -------------------- Installing PHP Extension: oci8 --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
\
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
@@ -304,7 +355,7 @@ RUN set -eux \
|
|||||||
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
&& docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \
|
||||||
# Generic post-command
|
# Generic post-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -331,6 +382,16 @@ RUN set -eux \
|
|||||||
&& true
|
&& 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 --------------------
|
# -------------------- Installing PHP Extension: pdo_firebird --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -352,19 +413,27 @@ RUN set -eux \
|
|||||||
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
# -------------------- Installing PHP Extension: pdo_oci --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Generic pre-command
|
# Generic pre-command
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
\
|
\
|
||||||
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& curl -sS -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
&& alien \
|
||||||
&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-v \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
--target=$( dpkg --print-architecture ) \
|
||||||
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& alien \
|
||||||
|
-v \
|
||||||
|
--target=$( dpkg --print-architecture ) \
|
||||||
|
-i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture \
|
||||||
|
--query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
|
&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.$(dpkg-architecture --query DEB_HOST_GNU_CPU).rpm \
|
||||||
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
\
|
\
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -384,6 +453,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: pdo_sqlsrv --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install pdo_sqlsrv \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable pdo_sqlsrv \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: pgsql --------------------
|
# -------------------- Installing PHP Extension: pgsql --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -439,6 +519,17 @@ phpize \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: rdkafka --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install rdkafka \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable rdkafka \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: shmop --------------------
|
# -------------------- Installing PHP Extension: shmop --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -469,6 +560,10 @@ RUN set -eux \
|
|||||||
|
|
||||||
# -------------------- Installing PHP Extension: sockets --------------------
|
# -------------------- Installing PHP Extension: sockets --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
|
# Version specific pre-command
|
||||||
|
&& docker-php-ext-configure sockets \
|
||||||
|
&& sed -i'' 's/.*ucred.*//g' /usr/src/php/ext/sockets/sendrecvmsg.c \
|
||||||
|
\
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
# Type: Built-in extension
|
# Type: Built-in extension
|
||||||
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \
|
||||||
@@ -494,6 +589,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: sqlsrv --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install sqlsrv \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable sqlsrv \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
# -------------------- Installing PHP Extension: sysvmsg --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -526,6 +632,39 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uploadprogress --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uploadprogress \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uploadprogress \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: uuid --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install uuid \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable uuid \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: vips --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install vips \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable vips \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: xdebug --------------------
|
# -------------------- Installing PHP Extension: xdebug --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Version specific
|
# Installation: Version specific
|
||||||
@@ -552,6 +691,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: xlswriter --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Default: Pecl command
|
||||||
|
&& pecl install xlswriter \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable xlswriter \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
# -------------------- Installing PHP Extension: yaml --------------------
|
# -------------------- Installing PHP Extension: yaml --------------------
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# Installation: Generic
|
# Installation: Generic
|
||||||
@@ -573,6 +723,17 @@ RUN set -eux \
|
|||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------- Installing PHP Extension: swoole --------------------
|
||||||
|
RUN set -eux \
|
||||||
|
# Installation: Generic
|
||||||
|
# Type: PECL extension
|
||||||
|
# Custom: Pecl command
|
||||||
|
&& pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes" with-postgres="yes"' swoole \
|
||||||
|
# Enabling
|
||||||
|
&& docker-php-ext-enable swoole \
|
||||||
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Fix php.ini settings for enabled extensions
|
# Fix php.ini settings for enabled extensions
|
||||||
@@ -585,9 +746,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -614,6 +775,51 @@ LABEL "org.opencontainers.image.title"="PHP-FPM 8.1-mods"
|
|||||||
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-mods"
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-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 \
|
||||||
|
ghostscript \
|
||||||
|
libaio1 \
|
||||||
|
libaspell15 \
|
||||||
|
libavif9 \
|
||||||
|
libc-ares2 \
|
||||||
|
libc-client2007e \
|
||||||
|
libenchant-2-2 \
|
||||||
|
libevent-2.1-7 \
|
||||||
|
libfbclient2 \
|
||||||
|
libffi7 \
|
||||||
|
libfreetype6 \
|
||||||
|
libicu67 \
|
||||||
|
libjpeg62-turbo \
|
||||||
|
libmagickwand-6.q16-6 \
|
||||||
|
libmariadbd19 \
|
||||||
|
libmemcachedutil2 \
|
||||||
|
libnghttp2-14 \
|
||||||
|
libpng16-16 \
|
||||||
|
libpq5 \
|
||||||
|
librabbitmq4 \
|
||||||
|
librdkafka1 \
|
||||||
|
libsybdb5 \
|
||||||
|
libtidy5deb1 \
|
||||||
|
libvips42 \
|
||||||
|
libvpx6 \
|
||||||
|
libwebp6 \
|
||||||
|
libxpm4 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libyaml-0-2 \
|
||||||
|
libzip4 \
|
||||||
|
snmp \
|
||||||
|
unixodbc \
|
||||||
|
uuid \
|
||||||
|
ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& update-ca-certificates
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Copy artifacts from builder
|
||||||
###
|
###
|
||||||
@@ -626,44 +832,22 @@ COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Install
|
### Post Install executions
|
||||||
###
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
libaio1 \
|
|
||||||
libaspell15 \
|
|
||||||
libc-client2007e \
|
|
||||||
libenchant1c2a \
|
|
||||||
libfbclient2 \
|
|
||||||
libffi6 \
|
|
||||||
libfreetype6 \
|
|
||||||
libicu63 \
|
|
||||||
libjpeg62-turbo \
|
|
||||||
libmcrypt4 \
|
|
||||||
libmemcachedutil2 \
|
|
||||||
libpng16-16 \
|
|
||||||
libpq5 \
|
|
||||||
libtidy5deb1 \
|
|
||||||
libvpx5 \
|
|
||||||
libwebp6 \
|
|
||||||
libxpm4 \
|
|
||||||
libxslt1.1 \
|
|
||||||
libyaml-0-2 \
|
|
||||||
libzip4 \
|
|
||||||
snmp \
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
\
|
|
||||||
&& update-ca-certificates
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Post Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
|
# ---------- imagick ----------
|
||||||
|
&& sed -i'' 's|.*"thread".*| <policy domain="resource" name="thread" value="1"/>|g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS2".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS3".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"EPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PDF".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"XPS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="coder".*"PS".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
&& sed -i'' 's|.*<policy domain="delegate".*pattern="gs".*||g' /etc/ImageMagick-6/policy.xml \
|
||||||
|
\
|
||||||
# ---------- oci8 ----------
|
# ---------- oci8 ----------
|
||||||
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
&& ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/$(dpkg-architecture --query DEB_HOST_GNU_CPU)/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \
|
||||||
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \
|
||||||
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \
|
||||||
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \
|
||||||
@@ -690,6 +874,8 @@ RUN set -eux \
|
|||||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
&& rm -f /usr/local/etc/php/php.ini \
|
&& rm -f /usr/local/etc/php/php.ini \
|
||||||
\
|
\
|
||||||
|
&& php -m | grep -oiE '^amqp$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^amqp$' \
|
||||||
&& php -m | grep -oiE '^apcu$' \
|
&& php -m | grep -oiE '^apcu$' \
|
||||||
&& php-fpm -m | grep -oiE '^apcu$' \
|
&& php-fpm -m | grep -oiE '^apcu$' \
|
||||||
&& php -m | grep -oiE '^bcmath$' \
|
&& php -m | grep -oiE '^bcmath$' \
|
||||||
@@ -730,6 +916,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^iconv$' \
|
&& php-fpm -m | grep -oiE '^iconv$' \
|
||||||
&& php -m | grep -oiE '^igbinary$' \
|
&& php -m | grep -oiE '^igbinary$' \
|
||||||
&& php-fpm -m | grep -oiE '^igbinary$' \
|
&& php-fpm -m | grep -oiE '^igbinary$' \
|
||||||
|
&& php -m | grep -oiE '^imagick$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^imagick$' \
|
||||||
&& php -m | grep -oiE '^imap$' \
|
&& php -m | grep -oiE '^imap$' \
|
||||||
&& php-fpm -m | grep -oiE '^imap$' \
|
&& php-fpm -m | grep -oiE '^imap$' \
|
||||||
&& php -m | grep -oiE '^intl$' \
|
&& php -m | grep -oiE '^intl$' \
|
||||||
@@ -742,8 +930,6 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^libxml$' \
|
&& php-fpm -m | grep -oiE '^libxml$' \
|
||||||
&& php -m | grep -oiE '^mbstring$' \
|
&& php -m | grep -oiE '^mbstring$' \
|
||||||
&& php-fpm -m | grep -oiE '^mbstring$' \
|
&& php-fpm -m | grep -oiE '^mbstring$' \
|
||||||
&& php -m | grep -oiE '^mcrypt$' \
|
|
||||||
&& php-fpm -m | grep -oiE '^mcrypt$' \
|
|
||||||
&& php -m | grep -oiE '^msgpack$' \
|
&& php -m | grep -oiE '^msgpack$' \
|
||||||
&& php-fpm -m | grep -oiE '^msgpack$' \
|
&& php-fpm -m | grep -oiE '^msgpack$' \
|
||||||
&& php -m | grep -oiE '^memcache$' \
|
&& php -m | grep -oiE '^memcache$' \
|
||||||
@@ -770,6 +956,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^pcre$' \
|
&& php-fpm -m | grep -oiE '^pcre$' \
|
||||||
&& php -m | grep -oiE '^pdo$' \
|
&& php -m | grep -oiE '^pdo$' \
|
||||||
&& php-fpm -m | grep -oiE '^pdo$' \
|
&& php-fpm -m | grep -oiE '^pdo$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_dblib$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_dblib$' \
|
||||||
&& php -m | grep -oiE '^pdo_firebird$' \
|
&& php -m | grep -oiE '^pdo_firebird$' \
|
||||||
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
|
&& php-fpm -m | grep -oiE '^pdo_firebird$' \
|
||||||
&& php -m | grep -oiE '^pdo_mysql$' \
|
&& php -m | grep -oiE '^pdo_mysql$' \
|
||||||
@@ -780,6 +968,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
&& php-fpm -m | grep -oiE '^pdo_pgsql$' \
|
||||||
&& php -m | grep -oiE '^pdo_sqlite$' \
|
&& php -m | grep -oiE '^pdo_sqlite$' \
|
||||||
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
&& php-fpm -m | grep -oiE '^pdo_sqlite$' \
|
||||||
|
&& php -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^pdo_sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^pgsql$' \
|
&& php -m | grep -oiE '^pgsql$' \
|
||||||
&& php-fpm -m | grep -oiE '^pgsql$' \
|
&& php-fpm -m | grep -oiE '^pgsql$' \
|
||||||
&& php -m | grep -oiE '^psr$' \
|
&& php -m | grep -oiE '^psr$' \
|
||||||
@@ -795,6 +985,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^redis$' \
|
&& php-fpm -m | grep -oiE '^redis$' \
|
||||||
&& php -m | grep -oiE '^reflection$' \
|
&& php -m | grep -oiE '^reflection$' \
|
||||||
&& php-fpm -m | grep -oiE '^reflection$' \
|
&& php-fpm -m | grep -oiE '^reflection$' \
|
||||||
|
&& php -m | grep -oiE '^rdkafka$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^rdkafka$' \
|
||||||
&& php -m | grep -oiE '^session$' \
|
&& php -m | grep -oiE '^session$' \
|
||||||
&& php-fpm -m | grep -oiE '^session$' \
|
&& php-fpm -m | grep -oiE '^session$' \
|
||||||
&& php -m | grep -oiE '^shmop$' \
|
&& php -m | grep -oiE '^shmop$' \
|
||||||
@@ -813,6 +1005,8 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^solr$' \
|
&& php-fpm -m | grep -oiE '^solr$' \
|
||||||
&& php -m | grep -oiE '^spl$' \
|
&& php -m | grep -oiE '^spl$' \
|
||||||
&& php-fpm -m | grep -oiE '^spl$' \
|
&& php-fpm -m | grep -oiE '^spl$' \
|
||||||
|
&& php -m | grep -oiE '^sqlsrv$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^sqlsrv$' \
|
||||||
&& php -m | grep -oiE '^sysvmsg$' \
|
&& php -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
&& php-fpm -m | grep -oiE '^sysvmsg$' \
|
||||||
&& php -m | grep -oiE '^sysvsem$' \
|
&& php -m | grep -oiE '^sysvsem$' \
|
||||||
@@ -823,6 +1017,12 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^tidy$' \
|
&& php-fpm -m | grep -oiE '^tidy$' \
|
||||||
&& php -m | grep -oiE '^tokenizer$' \
|
&& php -m | grep -oiE '^tokenizer$' \
|
||||||
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
&& php-fpm -m | grep -oiE '^tokenizer$' \
|
||||||
|
&& php -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uploadprogress$' \
|
||||||
|
&& php -m | grep -oiE '^uuid$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^uuid$' \
|
||||||
|
&& php -m | grep -oiE '^vips$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^vips$' \
|
||||||
&& php -m | grep -oiE '^xdebug$' \
|
&& php -m | grep -oiE '^xdebug$' \
|
||||||
&& php-fpm -m | grep -oiE '^xdebug$' \
|
&& php-fpm -m | grep -oiE '^xdebug$' \
|
||||||
&& php -m | grep -oiE '^xml$' \
|
&& php -m | grep -oiE '^xml$' \
|
||||||
@@ -833,10 +1033,14 @@ RUN set -eux \
|
|||||||
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
&& php-fpm -m | grep -oiE '^xmlwriter$' \
|
||||||
&& php -m | grep -oiE '^xsl$' \
|
&& php -m | grep -oiE '^xsl$' \
|
||||||
&& php-fpm -m | grep -oiE '^xsl$' \
|
&& php-fpm -m | grep -oiE '^xsl$' \
|
||||||
|
&& php -m | grep -oiE '^xlswriter$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^xlswriter$' \
|
||||||
&& php -m | grep -oiE '^yaml$' \
|
&& php -m | grep -oiE '^yaml$' \
|
||||||
&& php-fpm -m | grep -oiE '^yaml$' \
|
&& php-fpm -m | grep -oiE '^yaml$' \
|
||||||
&& php -m | grep -oiE '^zip$' \
|
&& php -m | grep -oiE '^zip$' \
|
||||||
&& php-fpm -m | grep -oiE '^zip$' \
|
&& php-fpm -m | grep -oiE '^zip$' \
|
||||||
|
&& php -m | grep -oiE '^swoole$' \
|
||||||
|
&& php-fpm -m | grep -oiE '^swoole$' \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
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
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM 8.1-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|||||||
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"]
|
||||||
@@ -88,6 +88,7 @@ set_postfix() {
|
|||||||
|
|
||||||
# Postfix catch-all
|
# Postfix catch-all
|
||||||
if [ "${enable_mail}" = "2" ]; then
|
if [ "${enable_mail}" = "2" ]; then
|
||||||
|
run "postconf -e 'myhostname=localhost'" "${debug}"
|
||||||
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
run "postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'" "${debug}"
|
||||||
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
run "echo '/.*@.*/ ${username}' >> /etc/postfix/virtual" "${debug}"
|
||||||
run "newaliases" "${debug}"
|
run "newaliases" "${debug}"
|
||||||
|
|||||||
@@ -29,15 +29,15 @@ MAILPID="/var/spool/postfix/pid/master.pid"
|
|||||||
###
|
###
|
||||||
### Sanity checks
|
### Sanity checks
|
||||||
###
|
###
|
||||||
if ! command -v pidof >/dev/null 2>&1; then
|
if ! command -v pgrep >/dev/null 2>&1; then
|
||||||
echo "pidof is required for cleaning up tail command."
|
echo "pgrep is required for cleaning up tail command."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Give rsyslogd some time to start up
|
# Give rsyslogd some time to start up
|
||||||
sleep 2
|
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."
|
echo "rsyslogd is not running, but required for mail logging."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:5.2-prod
|
FROM devilbox/php-fpm:5.2-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
|||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
&& 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 \
|
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | 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 \
|
|
||||||
&& curl -sS -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +106,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +123,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -158,9 +148,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -168,13 +167,40 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& apt-get update \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-clients; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -186,7 +212,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -198,9 +224,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -227,63 +255,70 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
|
||||||
&& (rm -rf /root/.cache || true) \
|
|
||||||
&& (rm -rf /root/.composer || true) \
|
|
||||||
&& (rm -rf /root/.config || true) \
|
|
||||||
&& (rm -rf /root/.npm || true) \
|
|
||||||
\
|
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -292,12 +327,47 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -347,17 +417,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -377,22 +482,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -400,13 +536,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -414,10 +584,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -453,19 +623,36 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& git-flow 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]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -486,14 +673,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:5.3-prod
|
FROM devilbox/php-fpm:5.3-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
|||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
&& 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 \
|
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | 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 \
|
|
||||||
&& curl -sS -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +106,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +123,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,11 +138,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -166,9 +160,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +179,40 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& apt-get update \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-clients; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -208,7 +238,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -220,9 +250,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -261,83 +293,90 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- 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 \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -345,20 +384,51 @@ RUN set -eux \
|
|||||||
### Install Composer (PHP)
|
### Install Composer (PHP)
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
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/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -408,17 +478,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -438,22 +543,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -461,13 +597,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -475,10 +645,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -514,8 +684,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
@@ -527,14 +715,12 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
&& phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -555,14 +741,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:5.4-prod
|
FROM devilbox/php-fpm:5.4-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
|||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
&& 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 \
|
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | 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 \
|
|
||||||
&& curl -sS -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +106,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +123,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,11 +138,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -166,9 +160,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +179,40 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& apt-get update \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-clients; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +224,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep \
|
&& 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 \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -226,7 +256,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -249,9 +279,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -290,88 +322,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- 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 \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -387,12 +428,47 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -442,17 +518,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -472,22 +583,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -495,13 +637,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -509,10 +685,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -548,8 +724,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -564,15 +758,14 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
&& codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -593,14 +786,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:5.5-prod
|
FROM devilbox/php-fpm:5.5-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
@@ -55,20 +55,12 @@ RUN set -eux \
|
|||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until \
|
&& 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 \
|
&& echo "deb [trusted=yes] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc 2>/dev/null | 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 \
|
|
||||||
&& curl -sS -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +94,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +106,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +123,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,11 +138,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -166,9 +160,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +179,40 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ jessie-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& apt-get update \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-clients; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +224,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \
|
&& 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 \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -231,7 +261,7 @@ RUN set -eux \
|
|||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -254,9 +284,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -296,88 +328,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-4.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+jessie_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/wkhtmltopdf/releases | awk -F\" '/wkhtmltopdf.*.jessie_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- 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 \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -397,20 +438,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -460,17 +532,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -490,22 +597,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -513,13 +651,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -527,10 +699,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -566,8 +738,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -583,18 +773,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -615,14 +803,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:5.6-prod
|
FROM devilbox/php-fpm:5.6-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
|
&& 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 \
|
&& 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" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,17 +124,15 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
zsh-common \
|
zsh-common \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -149,11 +140,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -167,9 +162,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -177,13 +181,44 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ 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 --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -195,7 +230,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep \
|
&& 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 \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -246,7 +281,7 @@ RUN set -eux \
|
|||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -269,9 +304,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -311,88 +348,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-5.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -412,20 +458,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -475,17 +552,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -502,22 +614,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -525,13 +668,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -539,10 +716,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -578,8 +755,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '5.6' | 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.6' | 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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -596,18 +791,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -628,14 +821,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:7.0-prod
|
FROM devilbox/php-fpm:7.0-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
|
&& 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 \
|
&& 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" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mysql-client \
|
mysql-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,17 +124,15 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
zsh-common \
|
zsh-common \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -149,11 +140,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -167,9 +162,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="17" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -177,13 +181,44 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ 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 --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -195,7 +230,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
&& 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 \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -227,7 +262,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -250,9 +285,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -292,88 +329,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-6.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont1 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -393,20 +439,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -456,17 +533,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -483,22 +595,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -506,13 +649,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -520,10 +697,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -559,8 +736,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -575,18 +770,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -607,14 +800,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:7.1-prod
|
FROM devilbox/php-fpm:7.1-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,11 +139,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -166,9 +161,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +180,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ 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 --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +223,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep \
|
&& 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 \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -226,7 +255,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -249,9 +278,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -291,88 +322,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -392,20 +432,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -455,17 +526,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -482,22 +588,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -505,13 +642,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -519,10 +690,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -558,8 +729,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -574,18 +763,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -606,14 +793,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:7.2-prod
|
FROM devilbox/php-fpm:7.2-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,11 +139,15 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
@@ -166,9 +161,18 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +180,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ 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 --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +223,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -240,12 +269,12 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- drupalconsole --------------------
|
# -------------------- 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')" \
|
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -268,9 +297,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -311,88 +342,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -412,20 +452,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -475,17 +546,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -502,22 +608,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -525,13 +662,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -539,10 +710,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -578,8 +749,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '7.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 '7.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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -596,18 +785,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -628,14 +815,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:7.3-prod
|
FROM devilbox/php-fpm:7.3-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,27 +139,41 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& 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 install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
libpython-dev \
|
libpython3-dev \
|
||||||
|
python3-distutils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +181,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-org-tools \
|
||||||
|
mongodb-org-shell \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +224,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -240,12 +270,12 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- drupalconsole --------------------
|
# -------------------- 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')" \
|
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -268,9 +298,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -311,88 +343,97 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /usr/local/bin/phpcbf \
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- php-cs-fixer --------------------
|
# -------------------- php-cs-fixer --------------------
|
||||||
&& curl -sS -L --fail https://cs.symfony.com/download/php-cs-fixer-v2.phar > /usr/local/bin/php-cs-fixer 2>/dev/null \
|
&& 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 \
|
&& chmod +x /usr/local/bin/php-cs-fixer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpmd --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -412,20 +453,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -475,17 +547,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -502,22 +609,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -525,13 +663,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -539,10 +711,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -578,8 +750,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -596,18 +786,16 @@ RUN set -eux \
|
|||||||
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
&& php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' \
|
||||||
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -628,14 +816,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:7.4-prod
|
FROM devilbox/php-fpm:7.4-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,27 +139,41 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& 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 install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
libpython-dev \
|
libpython3-dev \
|
||||||
|
python3-distutils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +181,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-org-tools \
|
||||||
|
mongodb-org-shell \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,7 +224,7 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- drush7 --------------------
|
# -------------------- drush7 --------------------
|
||||||
@@ -240,12 +270,12 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- drupalconsole --------------------
|
# -------------------- 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')" \
|
&& DURL="$(curl -s https://api.github.com/repos/hechoendrupal/drupal-console-launcher/releases/latest | awk -F\" '/download.*.phar/{print $(NF-1)}' | head -1)" \
|
||||||
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
&& curl -sS -L --fail "${DURL}" -L -o /usr/local/bin/drupal \
|
||||||
&& chmod +x /usr/local/bin/drupal \
|
&& chmod +x /usr/local/bin/drupal \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
@@ -268,9 +298,11 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -296,98 +328,98 @@ RUN set -eux \
|
|||||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- 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 --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /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 --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpunit --------------------
|
# -------------------- phpunit --------------------
|
||||||
&& curl -sS -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit 2>/dev/null \
|
&& curl -sS -k -L --fail https://phar.phpunit.de/phpunit-7.phar > /usr/local/bin/phpunit \
|
||||||
&& chmod +x /usr/local/bin/phpunit \
|
&& chmod +x /usr/local/bin/phpunit \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -407,20 +439,51 @@ RUN set -eux \
|
|||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require laravel/lumen-installer \
|
&& 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/ \
|
&& ln -s /usr/local/src/composer/vendor/laravel/lumen-installer/lumen /usr/local/bin/ \
|
||||||
\
|
\
|
||||||
# -------------------- photon --------------------
|
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require photoncms/installer \
|
|
||||||
&& ln -s /usr/local/src/composer/vendor/photoncms/installer/photon /usr/local/bin/ \
|
|
||||||
\
|
|
||||||
# -------------------- prestissimo --------------------
|
# -------------------- prestissimo --------------------
|
||||||
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
&& COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-1 global require hirak/prestissimo \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -470,17 +533,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -497,22 +595,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -520,13 +649,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -534,10 +697,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -573,8 +736,26 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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 '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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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*$' \
|
&& drush7 --version | grep -E '7[.0-9]+\s*$' \
|
||||||
@@ -585,23 +766,21 @@ RUN set -eux \
|
|||||||
&& laravel --version | grep -E '(Installer|version)\s*[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]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[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]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --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]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& phpunit --version | grep -iE '^PHPUnit\s[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]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
&& asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' \
|
&& 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]+$' \
|
&& 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]+$' \
|
&& lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' \
|
||||||
&& photon --version | grep -E 'Installer [0-9][.0-9]+' \
|
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -622,14 +801,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:8.0-prod
|
FROM devilbox/php-fpm:8.0-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,27 +139,41 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& 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 install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
libpython-dev \
|
libpython3-dev \
|
||||||
|
python3-distutils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +181,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-org-tools \
|
||||||
|
mongodb-org-shell \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,25 +224,38 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& 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 --------------------
|
# -------------------- linkcheck --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -239,78 +282,92 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /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 --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -319,12 +376,47 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -374,17 +466,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -401,22 +528,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -424,13 +582,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -438,10 +630,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -477,24 +669,43 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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]+' \
|
&& 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]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --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]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -515,14 +726,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:8.1-prod
|
FROM devilbox/php-fpm:8.1-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,29 +46,21 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
dirmngr \
|
dirmngr \
|
||||||
gnupg \
|
gnupg \
|
||||||
\
|
\
|
||||||
&& echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list \
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" 2>/dev/null | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
&& 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 \
|
&& 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 9DA31620334BD75D9DCB49F368818C72E52529D4 \
|
|
||||||
&& echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" > /etc/apt/sources.list.d/mongo.list \
|
|
||||||
&& curl -sS -L --fail 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 -L --fail 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 update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -102,10 +95,10 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
|
\
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -114,13 +107,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -131,16 +124,14 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -148,27 +139,41 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- composer --------------------
|
# -------------------- composer --------------------
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-1.phar > /usr/local/bin/composer-1 \
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
&& curl -sS -L --fail https://getcomposer.org/composer-2.phar > /usr/local/bin/composer-2 \
|
&& 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-1 \
|
||||||
&& chmod +x /usr/local/bin/composer-2 \
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- pip --------------------
|
# -------------------- pip --------------------
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& 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 install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
libpython-dev \
|
libpython3-dev \
|
||||||
|
python3-distutils \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
\
|
\
|
||||||
&& curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- nvm --------------------
|
# -------------------- nvm --------------------
|
||||||
&& git clone https://github.com/creationix/nvm /opt/nvm \
|
&& NODE_VERSION="--lts" \
|
||||||
&& cd /opt/nvm \
|
\
|
||||||
&& git checkout "$(git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1))" \
|
&& 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 'export NVM_DIR="/opt/nvm"'; \
|
||||||
@@ -176,13 +181,38 @@ RUN set -eux \
|
|||||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
} >> /home/devilbox/.bashrc \
|
} >> /home/devilbox/.bashrc \
|
||||||
\
|
\
|
||||||
&& chown -R devilbox:devilbox /opt/nvm \
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
\
|
\
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm install --lts' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm use node' devilbox \
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-org-tools \
|
||||||
|
mongodb-org-shell \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
# -------------------- awesomeci --------------------
|
# -------------------- awesomeci --------------------
|
||||||
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
&& cd /usr/local/src/awesome-ci \
|
&& cd /usr/local/src/awesome-ci \
|
||||||
@@ -194,25 +224,38 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- deployer --------------------
|
# -------------------- deployer --------------------
|
||||||
&& curl -sS -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
&& chmod +x /usr/local/bin/dep \
|
&& chmod +x /usr/local/bin/dep \
|
||||||
\
|
\
|
||||||
# -------------------- gitflow --------------------
|
# -------------------- gitflow --------------------
|
||||||
&& git clone git://github.com/petervanderdoes/gitflow.git /tmp/gitflow \
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
&& cd /tmp/gitflow \
|
&& cd /tmp/gitflow \
|
||||||
&& make install \
|
&& make install \
|
||||||
&& cd / && rm -rf /tmp/gitflow \
|
&& 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 --------------------
|
# -------------------- linkcheck --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
&& chmod +x /usr/local/bin/linkcheck \
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mhsendmail --------------------
|
# -------------------- mhsendmail --------------------
|
||||||
&& curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& chmod +x mhsendmail_linux_amd64 \
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail \
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- mysqldumpsecure --------------------
|
# -------------------- mysqldumpsecure --------------------
|
||||||
@@ -239,78 +282,92 @@ RUN set -eux \
|
|||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcs --------------------
|
# -------------------- phpcs --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
&& chmod +x /usr/local/bin/phpcs \
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- phpcbf --------------------
|
# -------------------- phpcbf --------------------
|
||||||
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf 2>/dev/null \
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
&& chmod +x /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 --------------------
|
# -------------------- phpmd --------------------
|
||||||
&& curl -sS -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
&& mv phpmd.phar /usr/local/bin/phpmd \
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
&& chmod +x /usr/local/bin/phpmd \
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- symfony --------------------
|
# -------------------- symfony --------------------
|
||||||
&& SYMFONY_VERSION="$( curl -sS -L --fail https://get.symfony.com/cli/LATEST )" \
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
&& curl -sS -L --fail "https://github.com/symfony/cli/releases/download/v${SYMFONY_VERSION}/symfony_linux_amd64" > /usr/local/bin/symfony \
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
&& chmod +x /usr/local/bin/symfony \
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wkhtmltopdf --------------------
|
# -------------------- wkhtmltopdf --------------------
|
||||||
&& VERSION="$( curl -sSL -L --fail https://github.com/wkhtmltopdf/wkhtmltopdf/releases | grep -Eo '/wkhtmltopdf/.+stretch_amd64\.deb' | head -1 )" \
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb https://github.com/${VERSION} \
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
&& rm -f /tmp/wkhtmltopdf.deb \
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
# -------------------- wpcli --------------------
|
# -------------------- wpcli --------------------
|
||||||
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
&& 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 \
|
&& chmod +x /usr/local/bin/wp \
|
||||||
\
|
\
|
||||||
# -------------------- 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}/.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/.subversion \
|
|
||||||
&& rm -rf /root/.v8* \
|
|
||||||
\
|
|
||||||
&& rm -rf /tmp/* \
|
|
||||||
&& (rm -rf /tmp/.* || true) \
|
|
||||||
\
|
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& (rm -rf /root/.gem || true ) \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& (rm -rf /root/.cache || true) \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& (rm -rf /root/.composer || true) \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& (rm -rf /root/.config || true) \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& (rm -rf /root/.npm || true) \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
\
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
&& (rm -rf /home/devilbox/.npm || 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 /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -319,12 +376,47 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
\
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -374,17 +466,52 @@ RUN set -eux \
|
|||||||
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& 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 \
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -401,22 +528,53 @@ RUN set -eux \
|
|||||||
&& gem install mdl -v 0.5.0 \
|
&& gem install mdl -v 0.5.0 \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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
|
### Install pip (Python) packages
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- ansible --------------------
|
|
||||||
&& pip install --no-cache-dir --force-reinstall ansible==3.4.0 || true \
|
|
||||||
\
|
|
||||||
# -------------------- yamllint --------------------
|
# -------------------- yamllint --------------------
|
||||||
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
\
|
\
|
||||||
@@ -424,13 +582,47 @@ RUN set -eux \
|
|||||||
&& pip install --no-cache-dir --force-reinstall yq || true \
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
\
|
\
|
||||||
\
|
\
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& 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 /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -438,10 +630,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -477,24 +669,43 @@ RUN set -eux \
|
|||||||
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
# -------------------- Software --------------------
|
# -------------------- Software --------------------
|
||||||
&& composer --version 2>/dev/null | grep -E 'version\s*[0-9][.0-9]+' \
|
&& 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 '^[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]+' \
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[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]+' \
|
&& 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]+' \
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
&& phpcbf --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]+' \
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
&& symfony -V | grep -Ei 'version\s*.*v[0-9][.0-9]+' \
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
&& wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)" \
|
&& 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]+' \
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Composer --------------------
|
# -------------------- Composer --------------------
|
||||||
\
|
\
|
||||||
# -------------------- PIP --------------------
|
# -------------------- PIP --------------------
|
||||||
&& ansible --version | grep -E '^ansible [0-9][.0-9]+$' \
|
|
||||||
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
\
|
\
|
||||||
@@ -515,14 +726,42 @@ RUN set -eux \
|
|||||||
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
\
|
\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
&& rm -rf /root/.console \
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
&& rm -rf /root/.composer \
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
&& rm -rf /root/.drush \
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (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)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
793
Dockerfiles/work/Dockerfile-8.2
Normal file
793
Dockerfiles/work/Dockerfile-8.2
Normal file
@@ -0,0 +1,793 @@
|
|||||||
|
# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead.
|
||||||
|
FROM devilbox/php-fpm:8.2-prod
|
||||||
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
|
###
|
||||||
|
### Labels
|
||||||
|
###
|
||||||
|
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||||
|
#LABEL "org.opencontainers.image.created"=""
|
||||||
|
#LABEL "org.opencontainers.image.version"=""
|
||||||
|
#LABEL "org.opencontainers.image.revision"=""
|
||||||
|
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||||
|
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||||
|
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||||
|
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||||
|
LABEL "org.opencontainers.image.ref.name"="8.2-work"
|
||||||
|
LABEL "org.opencontainers.image.title"="PHP-FPM 8.2-work"
|
||||||
|
LABEL "org.opencontainers.image.description"="PHP-FPM 8.2-work"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Re-activate modules which have been deactivated in mods.
|
||||||
|
### NOTE: They will be removed at the very bottom
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||||
|
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||||
|
fi \
|
||||||
|
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||||
|
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Envs
|
||||||
|
###
|
||||||
|
ENV BASH_PROFILE=".bashrc"
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Tools
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
dirmngr \
|
||||||
|
gnupg \
|
||||||
|
\
|
||||||
|
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 \
|
||||||
|
&& echo "deb http://ftp.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list \
|
||||||
|
&& curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://packages.blackfire.io/debian any main" > /etc/apt/sources.list.d/blackfire.list \
|
||||||
|
\
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
ack-grep \
|
||||||
|
aspell \
|
||||||
|
autoconf \
|
||||||
|
automake \
|
||||||
|
bash-completion \
|
||||||
|
binutils \
|
||||||
|
blackfire-agent \
|
||||||
|
build-essential \
|
||||||
|
bzip2 \
|
||||||
|
certbot \
|
||||||
|
coreutils \
|
||||||
|
dnsutils \
|
||||||
|
dos2unix \
|
||||||
|
file \
|
||||||
|
gawk \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
git-flow \
|
||||||
|
git-svn \
|
||||||
|
ghostscript \
|
||||||
|
graphviz \
|
||||||
|
gsfonts \
|
||||||
|
hostname \
|
||||||
|
htop \
|
||||||
|
imagemagick \
|
||||||
|
iputils-ping \
|
||||||
|
jq \
|
||||||
|
less \
|
||||||
|
libc-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libyaml-dev \
|
||||||
|
locales \
|
||||||
|
make \
|
||||||
|
moreutils \
|
||||||
|
\
|
||||||
|
mariadb-client \
|
||||||
|
\
|
||||||
|
mupdf \
|
||||||
|
mupdf-tools \
|
||||||
|
nano \
|
||||||
|
net-tools \
|
||||||
|
netcat \
|
||||||
|
openssh-client \
|
||||||
|
patch \
|
||||||
|
patchelf \
|
||||||
|
redis-tools \
|
||||||
|
rsync \
|
||||||
|
rubygems \
|
||||||
|
ruby-dev \
|
||||||
|
shellcheck \
|
||||||
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
|
subversion \
|
||||||
|
sudo \
|
||||||
|
tig \
|
||||||
|
tree \
|
||||||
|
unzip \
|
||||||
|
vim \
|
||||||
|
w3m \
|
||||||
|
wget \
|
||||||
|
whois \
|
||||||
|
xz-utils \
|
||||||
|
zip \
|
||||||
|
zlib1g-dev \
|
||||||
|
zsh \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install custom software
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- composer --------------------
|
||||||
|
&& COMPOSER_1_VERSION="latest-1.x" \
|
||||||
|
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||||
|
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||||
|
&& chmod +x /usr/local/bin/composer-1 \
|
||||||
|
&& chmod +x /usr/local/bin/composer-2 \
|
||||||
|
\
|
||||||
|
&& ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- pip --------------------
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libpython3-dev \
|
||||||
|
python3-distutils \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
&& curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- nvm --------------------
|
||||||
|
&& NODE_VERSION="--lts" \
|
||||||
|
\
|
||||||
|
&& NVM_VERSION="$( \
|
||||||
|
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||||
|
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||||
|
| grep -Eo 'v?[.0-9]+' \
|
||||||
|
| sort -V \
|
||||||
|
| tail -1 \
|
||||||
|
)" \
|
||||||
|
&& mkdir -p /opt/nvm \
|
||||||
|
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||||
|
| NVM_DIR="/opt/nvm" bash \
|
||||||
|
\
|
||||||
|
&& { \
|
||||||
|
echo 'export NVM_DIR="/opt/nvm"'; \
|
||||||
|
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||||
|
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||||
|
} >> /home/devilbox/.bashrc \
|
||||||
|
\
|
||||||
|
&& chown -R devilbox:devilbox "/opt/nvm" \
|
||||||
|
\
|
||||||
|
&& su -c ". /opt/nvm/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||||
|
&& su -c ". /opt/nvm/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||||
|
&& su -c ". /opt/nvm/nvm.sh; corepack enable" devilbox \
|
||||||
|
\
|
||||||
|
&& chmod 0777 /opt/nvm \
|
||||||
|
&& find /opt/nvm -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||||
|
&& find /opt/nvm -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- pgsql_client --------------------
|
||||||
|
&& curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||||
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
postgresql-client \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- mongo_client --------------------
|
||||||
|
&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||||
|
&& echo "deb http://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||||
|
&& apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
|
mongodb-org-tools \
|
||||||
|
mongodb-org-shell \
|
||||||
|
\
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
\
|
||||||
|
# -------------------- awesomeci --------------------
|
||||||
|
&& git clone https://github.com/cytopia/awesome-ci.git /usr/local/src/awesome-ci \
|
||||||
|
&& cd /usr/local/src/awesome-ci \
|
||||||
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
|
&& ./configure --prefix=/usr/local \
|
||||||
|
&& make install \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/awesome-ci \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- deployer --------------------
|
||||||
|
&& curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep \
|
||||||
|
&& chmod +x /usr/local/bin/dep \
|
||||||
|
\
|
||||||
|
# -------------------- gitflow --------------------
|
||||||
|
&& git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \
|
||||||
|
&& cd /tmp/gitflow \
|
||||||
|
&& make install \
|
||||||
|
&& cd / && rm -rf /tmp/gitflow \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- linkcheck --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck > /usr/local/bin/linkcheck \
|
||||||
|
&& chmod +x /usr/local/bin/linkcheck \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- mhsendmail --------------------
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
|
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||||
|
&& chmod +x mhsendmail_linux_amd64 \
|
||||||
|
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- mysqldumpsecure --------------------
|
||||||
|
&& git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||||
|
&& cd /usr/local/src/mysqldump-secure \
|
||||||
|
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||||
|
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||||
|
&& touch /var/log/mysqldump-secure.log \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||||
|
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||||
|
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||||
|
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||||
|
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||||
|
&& cd / \
|
||||||
|
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpcs --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar > /usr/local/bin/phpcs \
|
||||||
|
&& chmod +x /usr/local/bin/phpcs \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpcbf --------------------
|
||||||
|
&& curl -sS -L --fail https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar > /usr/local/bin/phpcbf \
|
||||||
|
&& chmod +x /usr/local/bin/phpcbf \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- phpmd --------------------
|
||||||
|
&& curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar > phpmd.phar \
|
||||||
|
&& mv phpmd.phar /usr/local/bin/phpmd \
|
||||||
|
&& chmod +x /usr/local/bin/phpmd \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- symfony --------------------
|
||||||
|
&& VERSION="$(curl -s https://api.github.com/repos/symfony-cli/symfony-cli/releases/latest | awk -F\" '/symfony-cli_.*._amd64\.deb/{print $(NF-1)}' | head -1 | sed 's/^.*[^0-9]\([0-9]*\.[0-9]*\.[0-9]*\).*$/\1/')" \
|
||||||
|
&& curl -sS -L --fail -o /tmp/symfonycli.deb https://github.com/symfony-cli/symfony-cli/releases/download/v${VERSION}/symfony-cli_${VERSION}_$(dpkg-architecture --query DEB_HOST_ARCH).deb \
|
||||||
|
&& dpkg -i /tmp/symfonycli.deb \
|
||||||
|
&& rm -f /tmp/symfonycli.deb \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- wkhtmltopdf --------------------
|
||||||
|
&& VERSION="$(curl -sSL -L --fail https://api.github.com/repos/wkhtmltopdf/packaging/releases | awk -F\" '/wkhtmltopdf.*.stretch_amd64\.deb/{print $(NF-1)}' | head -1 )" \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
||||||
|
libfontenc1 libxfont2 xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils \
|
||||||
|
&& curl -sS -L --fail -o /tmp/wkhtmltopdf.deb ${VERSION} \
|
||||||
|
&& dpkg -i /tmp/wkhtmltopdf.deb \
|
||||||
|
&& rm -f /tmp/wkhtmltopdf.deb; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||||
|
DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
# -------------------- wpcli --------------------
|
||||||
|
&& curl -sS -L --fail https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -L -o /usr/local/bin/wp \
|
||||||
|
&& chmod +x /usr/local/bin/wp \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install Composer (PHP)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install npm (Node)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- angular_cli --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @angular/cli' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- eslint --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- grunt --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- grunt_cli --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- gulp --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force gulp' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- jsonlint --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- pm2 --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- mdlint --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- sass --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- stylelint --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- vue_cli --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- vue_cli_service_global --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli-service-global' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- webpack --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack' devilbox \
|
||||||
|
\
|
||||||
|
# -------------------- webpack_cli --------------------
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& if [ -f "/opt/nvm/nvm.sh" ]; then \
|
||||||
|
ln -sf $(dirname $(su -c '. /opt/nvm/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
|
\
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; npm cache clear --force' devilbox \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install gem (Ruby)
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- mixlib_config --------------------
|
||||||
|
&& gem install mixlib-config -v 2.2.4 \
|
||||||
|
\
|
||||||
|
# -------------------- rb_inotify --------------------
|
||||||
|
&& gem install rb-inotify -v 0.9.10 \
|
||||||
|
\
|
||||||
|
# -------------------- mdl --------------------
|
||||||
|
&& gem install mdl -v 0.5.0 \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Install pip (Python) packages
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- yamllint --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yamllint || true \
|
||||||
|
\
|
||||||
|
# -------------------- yq --------------------
|
||||||
|
&& pip install --no-cache-dir --force-reinstall yq || true \
|
||||||
|
\
|
||||||
|
\
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true) \
|
||||||
|
\
|
||||||
|
&& (find /usr/local/bin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/lib -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true) \
|
||||||
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Configure Bash
|
||||||
|
###
|
||||||
|
RUN \
|
||||||
|
{ \
|
||||||
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
|
echo 'PATH="${HOME}/.yarn/bin:${PATH}"'; \
|
||||||
|
echo 'PATH="${HOME}/.composer/vendor/bin:${PATH}"'; \
|
||||||
|
echo 'PATH="/opt/nvm/versions/node/$(nvm version default)/bin:${PATH}"'; \
|
||||||
|
echo "export PATH"; \
|
||||||
|
echo ". /etc/bash-devilbox"; \
|
||||||
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
|
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||||
|
echo " if [ -r \"\${f}\" ]; then"; \
|
||||||
|
echo " . \"\${f}\""; \
|
||||||
|
echo " fi"; \
|
||||||
|
echo " done"; \
|
||||||
|
echo " unset f"; \
|
||||||
|
echo "fi"; \
|
||||||
|
} | tee -a /home/${MY_USER}/${BASH_PROFILE} /root/${BASH_PROFILE} \
|
||||||
|
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/${BASH_PROFILE}
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Verify
|
||||||
|
###
|
||||||
|
RUN set -eux \
|
||||||
|
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||||
|
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.2' \
|
||||||
|
&& /usr/local/sbin/php-fpm --test \
|
||||||
|
\
|
||||||
|
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||||
|
\
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||||
|
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||||
|
&& rm -f /usr/local/etc/php/php.ini
|
||||||
|
|
||||||
|
RUN set -eux \
|
||||||
|
# -------------------- Software --------------------
|
||||||
|
&& composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+' \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||||
|
&& su -c '. /opt/nvm/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||||
|
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
pg_isready --version; \
|
||||||
|
fi \
|
||||||
|
else \
|
||||||
|
pg_isready --version; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& if echo '8.2' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||||
|
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||||
|
mongofiles --version; \
|
||||||
|
fi \
|
||||||
|
else \
|
||||||
|
mongofiles --version; \
|
||||||
|
fi \
|
||||||
|
\
|
||||||
|
&& regex-grep --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' \
|
||||||
|
&& git-flow version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& linkcheck --version | grep -E '^linkcheck\sv[0-9][.0-9]+' \
|
||||||
|
&& mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+' \
|
||||||
|
&& phpcs --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
|
&& phpcbf --version | grep -E 'version [0-9][.0-9]+' \
|
||||||
|
&& phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' \
|
||||||
|
&& symfony -V | grep -Ei 'version\s[0-9][.0-9]+' \
|
||||||
|
&& if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then wkhtmltopdf --version | grep -E "^wkhtmltopdf [0-9][.0-9]+\s+\(.+patched.+\)"; fi \
|
||||||
|
&& wp --allow-root --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- Composer --------------------
|
||||||
|
\
|
||||||
|
# -------------------- PIP --------------------
|
||||||
|
&& yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& yq --version 2>&1 | grep -E '^yq\s+[0-9][.0-9]+$' \
|
||||||
|
\
|
||||||
|
# -------------------- NPM --------------------
|
||||||
|
&& ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' \
|
||||||
|
&& eslint -v | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& grunt --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& gulp --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& jsonlint --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& mdlint --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& sass --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& stylelint --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& vue --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
&& webpack --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- GEM --------------------
|
||||||
|
&& mdl --version | grep -E '[0-9][.0-9]+' \
|
||||||
|
\
|
||||||
|
# -------------------- Cleanup --------------------
|
||||||
|
\
|
||||||
|
&& (rm -rf /home/devilbox/.*json || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.ansible || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.cache || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.composer || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.config || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.console || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.drush || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.gem || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.local || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.node || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.npm || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.pm2 || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.subversion || true) \
|
||||||
|
&& (rm -rf /home/devilbox/.v8* || true) \
|
||||||
|
&& (rm -rf /home/devilbox/node_modules || true) \
|
||||||
|
&& (rm -rf /home/devilbox/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /root/.*json || true) \
|
||||||
|
&& (rm -rf /root/.ansible || true) \
|
||||||
|
&& (rm -rf /root/.cache || true) \
|
||||||
|
&& (rm -rf /root/.composer || true) \
|
||||||
|
&& (rm -rf /root/.config || true) \
|
||||||
|
&& (rm -rf /root/.console || true) \
|
||||||
|
&& (rm -rf /root/.drush || true) \
|
||||||
|
&& (rm -rf /root/.gem || true) \
|
||||||
|
&& (rm -rf /root/.local || true) \
|
||||||
|
&& (rm -rf /root/.node || true) \
|
||||||
|
&& (rm -rf /root/.npm || true) \
|
||||||
|
&& (rm -rf /root/.pm2 || true) \
|
||||||
|
&& (rm -rf /root/.subversion || true) \
|
||||||
|
&& (rm -rf /root/.v8* || true) \
|
||||||
|
&& (rm -rf /root/node_modules || true) \
|
||||||
|
&& (rm -rf /root/yarn.lock || true) \
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
# Deactive PSR and Phalcon:
|
||||||
|
# https://github.com/devilbox/docker-php-fpm/issues/201
|
||||||
|
RUN set -eux \
|
||||||
|
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini || true \
|
||||||
|
&& rm -f /usr/local/etc/php/conf.d/docker-php-ext-psr.ini || true \
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Copy files
|
||||||
|
###
|
||||||
|
COPY ./data/php-ini.d/php-8.2.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||||
|
COPY ./data/php-fpm.conf/php-fpm-8.2.conf /usr/local/etc/php-fpm.conf
|
||||||
|
|
||||||
|
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||||
|
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||||
|
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Volumes
|
||||||
|
###
|
||||||
|
VOLUME /shared/backups
|
||||||
|
VOLUME /var/log/php
|
||||||
|
VOLUME /var/mail
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ports
|
||||||
|
###
|
||||||
|
EXPOSE 9000
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Where to start inside the container
|
||||||
|
###
|
||||||
|
WORKDIR /shared/httpd
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Entrypoint
|
||||||
|
###
|
||||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||||
|
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||||
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
|
||||||
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
|
||||||
646
Makefile
646
Makefile
@@ -2,107 +2,87 @@ ifneq (,)
|
|||||||
.error This Makefile requires GNU Make.
|
.error This Makefile requires GNU Make.
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Ensure additional Makefiles are present
|
||||||
# -------------------------------------------------------------------------------------------------
|
MAKEFILES = Makefile.docker Makefile.lint
|
||||||
# Docker configuration
|
$(MAKEFILES): URL=https://raw.githubusercontent.com/devilbox/makefiles/master/$(@)
|
||||||
# -------------------------------------------------------------------------------------------------
|
$(MAKEFILES):
|
||||||
|
@if ! (curl --fail -sS -o $(@) $(URL) || wget -O $(@) $(URL)); then \
|
||||||
CURRENT_DIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
echo "Error, curl or wget required."; \
|
||||||
|
echo "Exiting."; \
|
||||||
DIR = Dockerfiles
|
false; \
|
||||||
IMAGE = devilbox/php-fpm
|
|
||||||
NO_CACHE =
|
|
||||||
PHP_EXT_DIR =
|
|
||||||
|
|
||||||
# Run checks after each module has been installed (slow, but yields errors faster)
|
|
||||||
FAIL_FAST = False
|
|
||||||
|
|
||||||
# File lint
|
|
||||||
FL_VERSION = 0.3
|
|
||||||
FL_IGNORES = .git/,.github/
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# DEFAULT TARGET
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo " _ _ _ _ __ _ ___ "
|
|
||||||
@echo " _| |___ _ _<_| | |_ _____ / ___| |_ ___ ___| | ___._ _ _ "
|
|
||||||
@echo " / . / ._| | | | | . / . \ \// | . | . | . |___| || . | ' ' |"
|
|
||||||
@echo " \___\___|__/|_|_|___\___/\_/_/| _|_|_| _/ |_|| _|_|_|_|"
|
|
||||||
@echo " |_| |_| |_| "
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
@echo "Targets"
|
|
||||||
@echo "--------------------------------------------------------------------------------"
|
|
||||||
@echo
|
|
||||||
@echo "lint Lint project files and repository"
|
|
||||||
@echo
|
|
||||||
@echo "gen-readme [VERSION=] Update README with PHP modules from built images."
|
|
||||||
@echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates."
|
|
||||||
@echo
|
|
||||||
@echo "build-base VERSION= [ARGS=] Build base image by specified version"
|
|
||||||
@echo "build-mods VERSION= [ARGS=] Build mods image by specified version"
|
|
||||||
@echo "build-prod VERSION= [ARGS=] Build prod image by specified version"
|
|
||||||
@echo "build-work VERSION= [ARGS=] Build work image by specified version"
|
|
||||||
@echo
|
|
||||||
@echo "rebuild-base VERSION= [ARGS=] Rebuild base image by specified version"
|
|
||||||
@echo "rebuild-mods VERSION= [ARGS=] Rebuild mods image by specified version"
|
|
||||||
@echo "rebuild-prod VERSION= [ARGS=] Rebuild prod image by specified version"
|
|
||||||
@echo "rebuild-work VERSION= [ARGS=] Rebuild work image by specified version"
|
|
||||||
@echo
|
|
||||||
@echo "test-base VERSION= Test base image by specified version"
|
|
||||||
@echo "test-mods VERSION= Test mods image by specified version"
|
|
||||||
@echo "test-prod VERSION= Test prod image by specified version"
|
|
||||||
@echo "test-work VERSION= Test work image by specified version"
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
@echo "Variables"
|
|
||||||
@echo "--------------------------------------------------------------------------------"
|
|
||||||
@echo
|
|
||||||
@echo "VERSION One of '5.2', '5.3', '5.4', '5.5', '5.6', '7.0',"
|
|
||||||
@echo " '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'."
|
|
||||||
@echo " For gen-readme target it is optional and if not"
|
|
||||||
@echo " specified, it will generate for all versions."
|
|
||||||
@echo
|
|
||||||
@echo "FAIL_FAST Either 'True' or 'False' (defaults to 'False')."
|
|
||||||
@echo " If set to 'True', each module install has an"
|
|
||||||
@echo " immediate check, which is very slow for CI, but"
|
|
||||||
@echo " yields errors immediately."
|
|
||||||
@echo " If set to 'False', checks are done at the end."
|
|
||||||
@echo
|
|
||||||
@echo "ARGS Can be added to all build-* and rebuild-* targets"
|
|
||||||
@echo " to supply additional docker build options."
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# Lint Targets
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
lint: lint-files
|
|
||||||
lint: lint-yaml
|
|
||||||
lint: lint-changelog
|
|
||||||
lint: lint-workflow
|
|
||||||
|
|
||||||
lint-workflow:
|
|
||||||
@echo "################################################################################"
|
|
||||||
@echo "# Lint Workflow"
|
|
||||||
@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 'refs:' -A 100 .github/workflows/nightly.yml \
|
|
||||||
| grep " - '$${GIT_NEXT_TAG}'" >/dev/null; then \
|
|
||||||
echo "[ERR] New Tag required in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
|
|
||||||
exit 1; \
|
|
||||||
else \
|
|
||||||
echo "[OK] Git Tag present in .github/workflows/nightly.yml: $${GIT_NEXT_TAG}"; \
|
|
||||||
fi
|
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:
|
||||||
|
@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
|
@echo
|
||||||
|
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
# Overwrite Targets
|
||||||
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Append additional target to lint
|
||||||
|
lint: lint-changelog
|
||||||
|
lint: lint-ansible
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ensures CHANGELOG has an entry
|
||||||
|
###
|
||||||
|
.PHONY: lint-changelog
|
||||||
lint-changelog:
|
lint-changelog:
|
||||||
@echo "################################################################################"
|
@echo "################################################################################"
|
||||||
@echo "# Lint Changelog"
|
@echo "# Lint Changelog"
|
||||||
@@ -119,43 +99,117 @@ lint-changelog:
|
|||||||
fi
|
fi
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
lint-files:
|
###
|
||||||
@echo "################################################################################"
|
### Ensures Ansible Dockerfile generation is current
|
||||||
@echo "# Lint Files"
|
###
|
||||||
@echo "################################################################################"
|
.PHONY: lint-ansible
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-cr --text --ignore '$(FL_IGNORES)' --path .
|
lint-ansible: gen-dockerfiles
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-crlf --text --ignore '$(FL_IGNORES)' --path .
|
@git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-single-newline --text --ignore '$(FL_IGNORES)' --path .
|
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-trailing-space --text --ignore '$(FL_IGNORES)' --path .
|
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8 --text --ignore '$(FL_IGNORES)' --path .
|
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/file-lint:$(FL_VERSION) file-utf8-bom --text --ignore '$(FL_IGNORES)' --path .
|
|
||||||
@echo
|
|
||||||
|
|
||||||
lint-yaml:
|
|
||||||
@# Lint all files
|
|
||||||
@echo "################################################################################"
|
|
||||||
@echo "# Lint Yaml"
|
|
||||||
@echo "################################################################################"
|
|
||||||
@docker run --rm $$(tty -s && echo "-it" || echo) -v $(CURRENT_DIR):/data cytopia/yamllint .
|
|
||||||
@echo
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
# GENERATE TARGETS
|
# Docker Targets
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
gen-readme:
|
# ---- ONLY FOR "mods" images ----
|
||||||
ifeq ($(strip $(VERSION)),)
|
# When builds mods, we have a builder image and then copy everything to the final
|
||||||
@echo "Generate README.md for all PHP versions"
|
# target image. In order to do so, we pass a build-arg EXT_DIR, which contains
|
||||||
cd build; ./gen-readme.sh
|
# the variable directory of extensions to copy.
|
||||||
else
|
# The only way to "LAZY" fetch it, is by doing a call to the base image and populate
|
||||||
@echo "Generate README.md for PHP $(VERSION)"
|
# a Makefile variable with its value upon call.
|
||||||
@$(MAKE) --no-print-directory _check-version
|
ifeq ($(strip $(STAGE)),mods)
|
||||||
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=base
|
EXT_DIR=$$( docker run --rm --platform $(ARCH) --entrypoint=php $(IMAGE):$(BASE_TAG) -r \
|
||||||
@$(MAKE) --no-print-directory _check-image-exists _EXIST_IMAGE=mods
|
'echo ini_get("extension_dir");'\
|
||||||
cd build; ./gen-readme.sh $(VERSION)
|
)
|
||||||
endif
|
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 README (requires images to be built)
|
||||||
|
###
|
||||||
|
.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; }
|
||||||
|
|
||||||
|
###
|
||||||
|
### Generate Dockerfiles
|
||||||
|
###
|
||||||
|
.PHONY: gen-dockerfiles
|
||||||
gen-dockerfiles:
|
gen-dockerfiles:
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
$$(tty -s && echo "-it" || echo) \
|
$$(tty -s && echo "-it" || echo) \
|
||||||
@@ -172,244 +226,118 @@ gen-dockerfiles:
|
|||||||
--diff $(ARGS)
|
--diff $(ARGS)
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# BUILD TARGETS
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
build-base: _check-version
|
|
||||||
build-base:
|
|
||||||
docker build $(NO_CACHE) \
|
|
||||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
|
||||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
|
||||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD))" \
|
|
||||||
$(ARGS) \
|
|
||||||
-t $(IMAGE):${VERSION}-base \
|
|
||||||
-f $(DIR)/base/Dockerfile-${VERSION} $(DIR)/base
|
|
||||||
|
|
||||||
|
|
||||||
build-mods: _check-version
|
|
||||||
build-mods: _EXIST_IMAGE=base
|
|
||||||
build-mods: _check-image-exists
|
|
||||||
build-mods:
|
|
||||||
ifeq ($(strip $(TARGET)),)
|
|
||||||
docker build $(NO_CACHE) \
|
|
||||||
--target builder \
|
|
||||||
-t $(IMAGE):$(VERSION)-mods \
|
|
||||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods;
|
|
||||||
@# $(NO_CACHE) is removed, as it would otherwise rebuild the 'builder' image again.
|
|
||||||
docker build \
|
|
||||||
--target final \
|
|
||||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
|
||||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
|
||||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
|
||||||
--build-arg EXT_DIR="$$( docker run --rm --entrypoint=php $(IMAGE):$(VERSION)-mods -i \
|
|
||||||
| grep ^extension_dir \
|
|
||||||
| awk -F '=>' '{print $$2}' \
|
|
||||||
| xargs \
|
|
||||||
)" \
|
|
||||||
$(ARGS) \
|
|
||||||
-t $(IMAGE):$(VERSION)-mods \
|
|
||||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods;
|
|
||||||
else
|
|
||||||
docker build $(NO_CACHE) \
|
|
||||||
--target $(TARGET) \
|
|
||||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
|
||||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
|
||||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
|
||||||
$(ARGS) \
|
|
||||||
-t $(IMAGE):$(VERSION)-mods \
|
|
||||||
-f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
build-prod: _check-version
|
|
||||||
build-prod: _EXIST_IMAGE=mods
|
|
||||||
build-prod: _check-image-exists
|
|
||||||
build-prod:
|
|
||||||
docker build $(NO_CACHE) \
|
|
||||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
|
||||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
|
||||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
|
||||||
$(ARGS) \
|
|
||||||
-t $(IMAGE):${VERSION}-prod \
|
|
||||||
-f $(DIR)/prod/Dockerfile-${VERSION} $(DIR)/prod
|
|
||||||
|
|
||||||
|
|
||||||
build-work: _check-version
|
|
||||||
build-work: _EXIST_IMAGE=prod
|
|
||||||
build-work: _check-image-exists
|
|
||||||
build-work:
|
|
||||||
docker build $(NO_CACHE) \
|
|
||||||
--label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \
|
|
||||||
--label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \
|
|
||||||
--label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \
|
|
||||||
$(ARGS) \
|
|
||||||
-t $(IMAGE):${VERSION}-work \
|
|
||||||
-f $(DIR)/work/Dockerfile-${VERSION} $(DIR)/work
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
# REBUILD TARGETS
|
# HELPER TARGETS
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
rebuild-base: _pull-base-image
|
###
|
||||||
rebuild-base: NO_CACHE=--no-cache
|
### Ensures the VERSION variable is set
|
||||||
rebuild-base: build-base
|
###
|
||||||
|
.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
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ensures the STAGE variable is set
|
||||||
|
###
|
||||||
|
.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-mods: NO_CACHE=--no-cache
|
###
|
||||||
rebuild-mods: build-mods
|
### Checks if current image exists and is of correct architecture
|
||||||
|
###
|
||||||
|
.PHONY: check-current-image-exists
|
||||||
rebuild-prod: NO_CACHE=--no-cache
|
check-current-image-exists: check-stage-is-set
|
||||||
rebuild-prod: build-prod
|
check-current-image-exists:
|
||||||
|
@if [ "$$( docker images -q $(IMAGE):$(DOCKER_TAG) )" = "" ]; then \
|
||||||
|
>&2 echo "Docker image '$(IMAGE):$(DOCKER_TAG)' was not found locally."; \
|
||||||
rebuild-work: NO_CACHE=--no-cache
|
|
||||||
rebuild-work: build-work
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# TEST TARGETS
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
test-base: _check-version
|
|
||||||
test-base: _EXIST_IMAGE=base
|
|
||||||
test-base: _check-image-exists
|
|
||||||
test-base:
|
|
||||||
./tests/test.sh ${VERSION} base
|
|
||||||
|
|
||||||
|
|
||||||
test-mods: _check-version
|
|
||||||
test-mods: _EXIST_IMAGE=mods
|
|
||||||
test-mods: _check-image-exists
|
|
||||||
test-mods: _check-version
|
|
||||||
./tests/test.sh ${VERSION} mods
|
|
||||||
|
|
||||||
|
|
||||||
test-prod: _check-version
|
|
||||||
test-prod: _EXIST_IMAGE=prod
|
|
||||||
test-prod: _check-image-exists
|
|
||||||
test-prod: _check-version
|
|
||||||
./tests/test.sh ${VERSION} prod
|
|
||||||
|
|
||||||
|
|
||||||
test-work: _check-version
|
|
||||||
test-work: _EXIST_IMAGE=work
|
|
||||||
test-work: _check-image-exists
|
|
||||||
test-work: _check-version
|
|
||||||
./tests/test.sh ${VERSION} work
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# DOCKERHUB TARGETS
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
login:
|
|
||||||
ifeq ($(strip $(USERNAME)),)
|
|
||||||
@$(info This make target requires the USERNAME variable to be set.)
|
|
||||||
@$(info make login USERNAME= PASSWORD=)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(PASSWORD)),)
|
|
||||||
@$(info This make target requires the PASSWORD variable to be set.)
|
|
||||||
@$(info make login USERNAME= PASSWORD=)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
@yes | docker login --username $(USERNAME) --password $(PASSWORD)
|
|
||||||
|
|
||||||
|
|
||||||
push:
|
|
||||||
ifeq ($(strip $(TAG)),)
|
|
||||||
@$(info This make target requires the TAG variable to be set.)
|
|
||||||
@$(info make push TAG=)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
docker push $(IMAGE):$(TAG)
|
|
||||||
|
|
||||||
|
|
||||||
tag:
|
|
||||||
ifeq ($(strip $(OLD_TAG)),)
|
|
||||||
@$(info This make target requires the OLD_TAG variable to be set.)
|
|
||||||
@$(info make tag OLD_TAG= NEW_TAG=)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(NEW_TAG)),)
|
|
||||||
@$(info This make target requires the NEW_TAG variable to be set.)
|
|
||||||
@$(info make tag OLD_TAG= NEW_TAG=)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
docker tag $(IMAGE):$(OLD_TAG) $(IMAGE):$(NEW_TAG)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
# HELPER TARGETS
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
_check-version:
|
|
||||||
ifeq ($(strip $(VERSION)),)
|
|
||||||
@$(info This make target requires the VERSION variable to be set.)
|
|
||||||
@$(info make build-<flavour> VERSION=7.3)
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
ifeq ($(VERSION),5.2)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),5.3)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),5.4)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),5.5)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),5.6)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),7.0)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),7.1)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),7.2)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),7.3)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),7.4)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),8.0)
|
|
||||||
else
|
|
||||||
ifeq ($(VERSION),8.1)
|
|
||||||
else
|
|
||||||
@$(info VERSION can only be: '5.2', '5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0' or '8.1')
|
|
||||||
@$(info )
|
|
||||||
@$(error Exiting)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
@echo "Version $(VERSION) is valid"
|
|
||||||
|
|
||||||
|
|
||||||
_check-image-exists:
|
|
||||||
@if [ "$$(docker images -q $(IMAGE):$(VERSION)-$(_EXIST_IMAGE))" = "" ]; then \
|
|
||||||
>&2 echo "Docker image '$(IMAGE):$(VERSION)-$(_EXIST_IMAGE)' was not found locally."; \
|
|
||||||
>&2 echo "Either build it first or explicitly pull it from Dockerhub."; \
|
>&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 "This is a safeguard to not automatically pull the Docker image."; \
|
||||||
>&2 echo; \
|
>&2 echo; \
|
||||||
false; \
|
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
|
||||||
|
|
||||||
|
###
|
||||||
|
### Checks if parent image exists and is of correct architecture
|
||||||
|
###
|
||||||
|
.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;
|
fi;
|
||||||
|
|
||||||
|
|
||||||
_pull-base-image:
|
|
||||||
@echo "Pulling root image for PHP ${VERSION}"
|
|
||||||
@docker pull $(shell grep FROM $(DIR)/base/Dockerfile-${VERSION} | sed 's/^FROM\s*//g';)
|
|
||||||
|
|||||||
84
README.md
84
README.md
@@ -9,6 +9,8 @@
|
|||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
|
||||||
|
**Available Architectures:** `amd64`, `arm64`
|
||||||
|
|
||||||
This repository will provide you fully functional PHP-FPM Docker images in different flavours,
|
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.
|
||||||
|
|
||||||
@@ -25,6 +27,7 @@ Have a look at the following Devilbox base images for which no official versions
|
|||||||
* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4)
|
* [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.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.1](https://github.com/devilbox/docker-php-fpm-8.1)
|
||||||
|
* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2)
|
||||||
|
|
||||||
#### Documentation
|
#### Documentation
|
||||||
|
|
||||||
@@ -221,7 +224,7 @@ The following table shows a more complete overview about the offered Docker imag
|
|||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="12"><strong>base</strong></td>
|
<td rowspan="13"><strong>base</strong></td>
|
||||||
<td><code>devilbox/php-fpm:5.2-base</code></td>
|
<td><code>devilbox/php-fpm:5.2-base</code></td>
|
||||||
<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>
|
<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>
|
||||||
@@ -304,9 +307,16 @@ 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: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>
|
</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td rowspan="12"><strong>mods</strong></td>
|
<td rowspan="13"><strong>mods</strong></td>
|
||||||
<td><code>devilbox/php-fpm:5.2-mods</code></td>
|
<td><code>devilbox/php-fpm:5.2-mods</code></td>
|
||||||
<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>
|
<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>
|
||||||
@@ -390,9 +400,16 @@ 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: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>
|
</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td rowspan="12"><strong>prod</strong></td>
|
<td rowspan="13"><strong>prod</strong></td>
|
||||||
<td><code>devilbox/php-fpm:5.2-prod</code></td>
|
<td><code>devilbox/php-fpm:5.2-prod</code></td>
|
||||||
<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>
|
<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>
|
||||||
@@ -476,9 +493,16 @@ 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: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>
|
</td>
|
||||||
</tr>
|
</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>
|
<tr>
|
||||||
<td rowspan="12"><strong>work</strong></td>
|
<td rowspan="13"><strong>work</strong></td>
|
||||||
<td><code>devilbox/php-fpm:5.2-work</code></td>
|
<td><code>devilbox/php-fpm:5.2-work</code></td>
|
||||||
<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>
|
<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>
|
||||||
@@ -562,6 +586,13 @@ 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: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>
|
</td>
|
||||||
</tr>
|
</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>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -629,63 +660,68 @@ Check out this table to see which Docker image provides what PHP modules.
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th>5.2</th>
|
<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-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, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, 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>
|
<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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>5.3</th>
|
<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-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, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, 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, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>5.4</th>
|
<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-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, ioncube, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, 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, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>5.5</th>
|
<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-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, 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, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, Zend OPcache, zip, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>5.6</th>
|
<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-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, 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, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>7.0</th>
|
<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-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, 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, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>7.1</th>
|
<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-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, 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, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>7.2</th>
|
<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-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, 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, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>7.3</th>
|
<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-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">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, vips, wddx, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>7.4</th>
|
<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-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">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, 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, 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, vips, xdebug, xlswriter, xml, xmlreader, xmlrpc, xmlwriter, xsl, yaml, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>8.0</th>
|
<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-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">apcu, bcmath, blackfire, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, 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, pgsql, Phar, posix, pspell, psr, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xlswriter, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, 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>
|
||||||
<tr>
|
<tr>
|
||||||
<th>8.1</th>
|
<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-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">apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imap, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, OAuth, oci8, openssl, pcntl, pcre, PDO, PDO_Firebird, pdo_mysql, PDO_OCI, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, psr, readline, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, solr, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xml, xmlreader, xmlwriter, xsl, yaml, Zend OPcache, zip, 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>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -708,6 +744,7 @@ docker pull devilbox/php-fpm:7.3-base
|
|||||||
docker pull devilbox/php-fpm:7.4-base
|
docker pull devilbox/php-fpm:7.4-base
|
||||||
docker pull devilbox/php-fpm:8.0-base
|
docker pull devilbox/php-fpm:8.0-base
|
||||||
docker pull devilbox/php-fpm:8.1-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>
|
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>
|
||||||
@@ -726,6 +763,7 @@ docker pull devilbox/php-fpm:7.3-mods
|
|||||||
docker pull devilbox/php-fpm:7.4-mods
|
docker pull devilbox/php-fpm:7.4-mods
|
||||||
docker pull devilbox/php-fpm:8.0-mods
|
docker pull devilbox/php-fpm:8.0-mods
|
||||||
docker pull devilbox/php-fpm:8.1-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>
|
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>
|
||||||
@@ -744,6 +782,7 @@ docker pull devilbox/php-fpm:7.3-prod
|
|||||||
docker pull devilbox/php-fpm:7.4-prod
|
docker pull devilbox/php-fpm:7.4-prod
|
||||||
docker pull devilbox/php-fpm:8.0-prod
|
docker pull devilbox/php-fpm:8.0-prod
|
||||||
docker pull devilbox/php-fpm:8.1-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.
|
Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting.
|
||||||
@@ -762,6 +801,7 @@ docker pull devilbox/php-fpm:7.3-work
|
|||||||
docker pull devilbox/php-fpm:7.4-work
|
docker pull devilbox/php-fpm:7.4-work
|
||||||
docker pull devilbox/php-fpm:8.0-work
|
docker pull devilbox/php-fpm:8.0-work
|
||||||
docker pull devilbox/php-fpm:8.1-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.
|
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.
|
||||||
@@ -1041,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><a href="https://gruntjs.com/">grunt</a></td>
|
||||||
<td>Grunt command line JS tool.</td>
|
<td>Grunt command line JS tool.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><a href="https://brew.sh/">Homebrew</a></td>
|
||||||
|
<td>The Missing Package Manager for macOS (or Linux).</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td>
|
<td><a href="https://github.com/zaach/jsonlint">jsonlint</a></td>
|
||||||
<td>Json command line linter.</td>
|
<td>Json command line linter.</td>
|
||||||
|
|||||||
@@ -3,10 +3,16 @@
|
|||||||
FROM devilbox/php-fpm-5.2
|
FROM devilbox/php-fpm-5.2
|
||||||
{% elif php_version == 5.3 %}
|
{% elif php_version == 5.3 %}
|
||||||
FROM devilbox/php-fpm-5.3
|
FROM devilbox/php-fpm-5.3
|
||||||
|
{% elif php_version == 5.4 %}
|
||||||
|
FROM devilbox/php-fpm-5.4
|
||||||
|
{% elif php_version == 5.5 %}
|
||||||
|
FROM devilbox/php-fpm-5.5
|
||||||
{% elif php_version == 8.0 %}
|
{% elif php_version == 8.0 %}
|
||||||
FROM devilbox/php-fpm-8.0
|
FROM devilbox/php-fpm-8.0
|
||||||
{% elif php_version == 8.1 %}
|
{% elif php_version == 8.1 %}
|
||||||
FROM devilbox/php-fpm-8.1
|
FROM devilbox/php-fpm-8.1
|
||||||
|
{% elif php_version == 8.2 %}
|
||||||
|
FROM devilbox/php-fpm-8.2
|
||||||
{% else %}
|
{% else %}
|
||||||
FROM php:{{ php_version }}-fpm
|
FROM php:{{ php_version }}-fpm
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -53,18 +59,11 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
### Upgrade (install ps)
|
### Upgrade (install ps)
|
||||||
###
|
###
|
||||||
{% if php_version in [5.2, 5.3, 5.4, 5.5] %}
|
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& rm -f /etc/apt/sources.list \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& { \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
echo "deb http://ftp.debian.org/debian jessie main"; \
|
dpkg-dev \
|
||||||
echo "#deb http://ftp.debian.org/debian jessie-updates main"; \
|
procps \
|
||||||
echo "deb http://security.debian.org/debian-security jessie/updates main"; \
|
|
||||||
} | tee /etc/apt/sources.list
|
|
||||||
{% endif %}
|
|
||||||
RUN set -eux \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests procps \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -31,14 +31,34 @@ FROM devilbox/php-fpm:{{ php_version }}-base as builder
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
{% for build_dep in build_deps | unique | sort %}
|
{% for build_dep in build_deps | unique | sort %}
|
||||||
{{ build_dep }} \
|
{{ build_dep }} \
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
# Build tools
|
||||||
|
autoconf \
|
||||||
|
bison \
|
||||||
|
bisonc++ \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
git
|
curl \
|
||||||
|
dpkg-dev \
|
||||||
|
file \
|
||||||
|
flex \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
git \
|
||||||
|
lemon \
|
||||||
|
libc-client-dev \
|
||||||
|
libc-dev \
|
||||||
|
libcurl4-openssl-dev \
|
||||||
|
libssl-dev \
|
||||||
|
make \
|
||||||
|
patch \
|
||||||
|
pkg-config \
|
||||||
|
re2c \
|
||||||
|
xz-utils \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr)
|
||||||
@@ -94,9 +114,12 @@ RUN set -eux \
|
|||||||
{%- if 'configure' in extensions_available[ext][php_version] -%}
|
{%- if 'configure' in extensions_available[ext][php_version] -%}
|
||||||
{{- "\n\t" }}# Custom: configure command
|
{{- "\n\t" }}# Custom: configure command
|
||||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \
|
{{- "\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 -%}
|
{%- endif -%}
|
||||||
{{- "\n\t" }}# Installation
|
{{- "\n\t" }}# Installation
|
||||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||||
{#-
|
{#-
|
||||||
# -------------------- 2.) PECL --------------------
|
# -------------------- 2.) PECL --------------------
|
||||||
-#}
|
-#}
|
||||||
@@ -157,7 +180,7 @@ RUN set -eux \
|
|||||||
{{- "\n\t" }}# Custom: configure command
|
{{- "\n\t" }}# Custom: configure command
|
||||||
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
{{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \
|
{{- "\n\t" }}&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) {{ ext }} \
|
||||||
{#-
|
{#-
|
||||||
# -------------------- 2.) PECL --------------------
|
# -------------------- 2.) PECL --------------------
|
||||||
-#}
|
-#}
|
||||||
@@ -289,9 +312,9 @@ RUN set -eux \
|
|||||||
|
|
||||||
# Shrink everything down
|
# Shrink everything down
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& (find /usr/local/bin -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 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 strip --strip-all -p 2>/dev/null || true)
|
&& (find /usr/local/sbin -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -319,22 +342,11 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods"
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Copy artifacts from builder
|
### Install runtime libraries
|
||||||
###
|
|
||||||
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/
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Install
|
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
{# Loop over enabled run-time dependencies -#}
|
{# Loop over enabled run-time dependencies -#}
|
||||||
{%- set run_deps = [] -%}
|
{%- set run_deps = [] -%}
|
||||||
{%- for ext in extensions_enabled -%}
|
{%- for ext in extensions_enabled -%}
|
||||||
@@ -365,7 +377,18 @@ RUN set -eux \
|
|||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Post Install
|
### Copy artifacts from builder
|
||||||
|
###
|
||||||
|
ARG EXT_DIR
|
||||||
|
COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/
|
||||||
|
COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/
|
||||||
|
COPY --from=builder /usr/local/bin/ /usr/local/bin/
|
||||||
|
COPY --from=builder /usr/local/lib/ /usr/local/lib/
|
||||||
|
COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Post Install executions
|
||||||
###
|
###
|
||||||
{# Loop over enabled extensions #}
|
{# Loop over enabled extensions #}
|
||||||
{%- set post_commands = {} -%}
|
{%- set post_commands = {} -%}
|
||||||
|
|||||||
@@ -26,9 +26,8 @@ LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod"
|
|||||||
### Install
|
### Install
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
locales-all \
|
locales-all \
|
||||||
postfix \
|
postfix \
|
||||||
postfix-pcre \
|
postfix-pcre \
|
||||||
@@ -36,18 +35,21 @@ RUN set -eux \
|
|||||||
rsyslog \
|
rsyslog \
|
||||||
socat \
|
socat \
|
||||||
supervisor \
|
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 /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* \
|
&& rm -rf /etc/supervisor* \
|
||||||
&& mkdir -p /var/log/supervisor \
|
&& mkdir -p /var/log/supervisor \
|
||||||
&& mkdir -p /etc/supervisor/conf.d \
|
&& mkdir -p /etc/supervisor/conf.d \
|
||||||
&& mkdir -p /etc/supervisor/custom.d \
|
&& mkdir -p /etc/supervisor/custom.d \
|
||||||
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
&& chown devilbox:devilbox /etc/supervisor/custom.d \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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 %}
|
{% if debug %}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
FROM devilbox/php-fpm:{{ php_version }}-prod
|
FROM devilbox/php-fpm:{{ php_version }}-prod
|
||||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||||
|
|
||||||
|
ARG ARCH
|
||||||
|
|
||||||
###
|
###
|
||||||
### Labels
|
### Labels
|
||||||
@@ -45,9 +46,8 @@ ENV BASH_PROFILE=".bashrc"
|
|||||||
### Install Tools
|
### Install Tools
|
||||||
###
|
###
|
||||||
RUN set -eux \
|
RUN set -eux \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
@@ -80,8 +80,8 @@ RUN set -eux \
|
|||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endfor -%}{{ "\n\t" }}\
|
{%- endfor -%}{{ "\n\t" }}\
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get update -qq \
|
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||||
ack-grep \
|
ack-grep \
|
||||||
aspell \
|
aspell \
|
||||||
autoconf \
|
autoconf \
|
||||||
@@ -91,7 +91,7 @@ RUN set -eux \
|
|||||||
blackfire-agent \
|
blackfire-agent \
|
||||||
build-essential \
|
build-essential \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
{% if php_version != 5.2 and php_version != 5.3 and php_version != 5.4 and php_version != 5.5 %}
|
{% if php_version not in [5.2, 5.3, 5.4, 5.5] %}
|
||||||
certbot \
|
certbot \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
coreutils \
|
coreutils \
|
||||||
@@ -118,14 +118,14 @@ RUN set -eux \
|
|||||||
libyaml-dev \
|
libyaml-dev \
|
||||||
locales \
|
locales \
|
||||||
make \
|
make \
|
||||||
mongodb-org-shell \
|
|
||||||
mongodb-org-tools \
|
|
||||||
moreutils \
|
moreutils \
|
||||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1] %}
|
\
|
||||||
|
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||||
mariadb-client \
|
mariadb-client \
|
||||||
{% else %}
|
{% else %}
|
||||||
mysql-client \
|
mysql-client \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
\
|
||||||
mupdf \
|
mupdf \
|
||||||
mupdf-tools \
|
mupdf-tools \
|
||||||
nano \
|
nano \
|
||||||
@@ -134,13 +134,13 @@ RUN set -eux \
|
|||||||
openssh-client \
|
openssh-client \
|
||||||
patch \
|
patch \
|
||||||
patchelf \
|
patchelf \
|
||||||
postgresql-client \
|
|
||||||
redis-tools \
|
redis-tools \
|
||||||
rsync \
|
rsync \
|
||||||
rubygems \
|
rubygems \
|
||||||
ruby-dev \
|
ruby-dev \
|
||||||
shellcheck \
|
shellcheck \
|
||||||
silversearcher-ag \
|
silversearcher-ag \
|
||||||
|
sqlite3 \
|
||||||
subversion \
|
subversion \
|
||||||
sudo \
|
sudo \
|
||||||
tig \
|
tig \
|
||||||
@@ -151,19 +151,17 @@ RUN set -eux \
|
|||||||
wget \
|
wget \
|
||||||
whois \
|
whois \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
yarn \
|
|
||||||
zip \
|
zip \
|
||||||
zlib1g-dev \
|
zlib1g-dev \
|
||||||
zsh \
|
zsh \
|
||||||
{% if php_version in [5.6, 7.0] %}
|
{% if php_version in [5.6, 7.0] %}
|
||||||
zsh-common \
|
zsh-common \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
&& 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 /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/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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -218,19 +216,17 @@ RUN set -eux \
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}\{{ "\n" }}
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
&& (rm -rf /root/.gem || true ) \
|
|
||||||
&& (rm -rf /root/.cache || true) \
|
|
||||||
&& (rm -rf /root/.composer || true) \
|
|
||||||
&& (rm -rf /root/.config || true) \
|
|
||||||
&& (rm -rf /root/.npm || true) \
|
|
||||||
\
|
\
|
||||||
&& (rm -rf /home/devilbox/.cache || true) \
|
{% for f in directory_to_clean %}
|
||||||
&& (rm -rf /home/devilbox/.composer || true) \
|
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||||
&& (rm -rf /home/devilbox/.config || true) \
|
{% endfor %}
|
||||||
&& (rm -rf /home/devilbox/.npm || true) \
|
\
|
||||||
|
{% for f in directory_to_clean %}
|
||||||
|
&& (rm -rf /root/{{ f }} || true) \
|
||||||
|
{% endfor %}
|
||||||
\
|
\
|
||||||
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
&& (rm -rf /usr/local/src/composer/cache/* || true) \
|
||||||
&& rm -rf /tmp/* \
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
@@ -279,12 +275,21 @@ RUN set -eux \
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}\{{ "\n" }}
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
&& rm -rf /tmp/* \
|
\
|
||||||
|
{% 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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -302,18 +307,18 @@ RUN set -eux \
|
|||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{#- Version specific gem version available? -#}
|
{#- Version specific gem version available? -#}
|
||||||
{%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%}
|
{%- if php_version in npm_available[tool] and 'version' in npm_available[tool][php_version] -%}
|
||||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool][php_version]['version'] }}' devilbox \
|
{{ "\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? -#}
|
{#- Generic gem version available? -#}
|
||||||
{%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%}
|
{%- elif 'all' in npm_available[tool] and 'version' in npm_available[tool]['all'] -%}
|
||||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }} {{ npm_available[tool]['all']['version'] }}' devilbox \
|
{{ "\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 -#}
|
{#- No version info available -#}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}&& su -c '. /opt/nvm/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
{{ "\n\t" }}&& su -c '. {{ nvm_home }}/nvm.sh; npm install -g --force {{ npm_available[tool]['name'] }}' devilbox \
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{#- Fail fast version -#}
|
{#- Fail fast version -#}
|
||||||
{%- if build_fail_fast -%}
|
{%- if build_fail_fast -%}
|
||||||
{%- if 'check' in npm_available[tool] -%}
|
{%- if 'check' in npm_available[tool] -%}
|
||||||
{{ "\n\t" }}&& PATH=$PATH:/opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin /opt/nvm/versions/node/$(/bin/ls -1 /opt/nvm/versions/node/ | sort -V | tail -1)/bin/{{ npm_available[tool]['check'] }}{{ "\n\n" }}
|
{{ "\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 -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}&& true{{ "\n\n" }}
|
{{ "\n\t" }}&& true{{ "\n\n" }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
@@ -328,17 +333,26 @@ RUN set -eux \
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}\{{ "\n" }}
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
&& 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 \
|
&& if [ -f "{{ nvm_home }}/nvm.sh" ]; then \
|
||||||
&& su -c '. /opt/nvm/nvm.sh; nvm cache clear --force' devilbox \
|
ln -sf $(dirname $(su -c '. {{ nvm_home }}/nvm.sh; nvm which current' devilbox))/* /usr/local/bin/ \
|
||||||
&& rm -rf /home/devilbox/.npm \
|
\
|
||||||
&& rm -rf /home/devilbox/.cache \
|
&& su -c '. {{ nvm_home }}/nvm.sh; npm cache clear --force' devilbox \
|
||||||
&& rm -rf /home/devilbox/.config \
|
&& su -c '. {{ nvm_home }}/nvm.sh; nvm cache clear --force' devilbox; \
|
||||||
&& rm -rf /tmp/* \
|
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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /opt/nvm -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true)
|
&& (find {{ nvm_home }} -type f -print0 | xargs -n1 -0 -P$(getconf _NPROCESSORS_ONLN) strip --strip-all -p 2>/dev/null || true)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -382,13 +396,21 @@ RUN set -eux \
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}\{{ "\n" }}
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
&& rm -rf /root/.gem \
|
\
|
||||||
&& rm -rf /tmp/* \
|
{% 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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -432,13 +454,21 @@ RUN set -eux \
|
|||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ "\n\t" }}\{{ "\n" }}
|
{{ "\n\t" }}\{{ "\n" }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
&& rm -rf /root/.cache/pip \
|
\
|
||||||
&& rm -rf /tmp/* \
|
{% 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) \
|
&& (rm -rf /tmp/.* || true) \
|
||||||
\
|
\
|
||||||
&& (find /usr/local/bin -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 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 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)
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -446,10 +476,10 @@ RUN set -eux \
|
|||||||
###
|
###
|
||||||
RUN \
|
RUN \
|
||||||
{ \
|
{ \
|
||||||
echo 'PATH="${PATH}:${HOME}/.yarn/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:${HOME}/.composer/vendor/bin"'; \
|
|
||||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||||
echo 'PATH="${PATH}:/opt/nvm/versions/node/$(nvm version default)/bin"'; \
|
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 "export PATH"; \
|
||||||
echo ". /etc/bash-devilbox"; \
|
echo ". /etc/bash-devilbox"; \
|
||||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||||
@@ -531,14 +561,16 @@ RUN set -eux \
|
|||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{% endfor %}{{ "\n\t" }}\
|
{% endfor %}{{ "\n\t" }}\
|
||||||
# -------------------- Cleanup --------------------
|
# -------------------- Cleanup --------------------
|
||||||
&& rm -rf /home/devilbox/.cache/ \
|
\
|
||||||
&& rm -rf /home/devilbox/.config/ \
|
{% for f in directory_to_clean %}
|
||||||
&& rm -rf /root/.ansible \
|
&& (rm -rf /home/devilbox/{{ f }} || true) \
|
||||||
&& rm -rf /root/.console \
|
{% endfor %}
|
||||||
&& rm -rf /root/.composer \
|
\
|
||||||
&& rm -rf /root/.drush \
|
{% for f in directory_to_clean %}
|
||||||
&& rm -rf /root/.pm2 \
|
&& (rm -rf /root/{{ f }} || true) \
|
||||||
&& rm -rf /tmp/* \
|
{% endfor %}
|
||||||
|
\
|
||||||
|
&& (rm -rf /tmp/* || true) \
|
||||||
&& (rm -rf /tmp/.* || true)
|
&& (rm -rf /tmp/.* || true)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ php_all_versions:
|
|||||||
- 7.4
|
- 7.4
|
||||||
- 8.0
|
- 8.0
|
||||||
- 8.1
|
- 8.1
|
||||||
|
- 8.2
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -11,3 +11,4 @@ php-7.3 php_version=7.3 ansible_connection=local
|
|||||||
php-7.4 php_version=7.4 ansible_connection=local
|
php-7.4 php_version=7.4 ansible_connection=local
|
||||||
php-8.0 php_version=8.0 ansible_connection=local
|
php-8.0 php_version=8.0 ansible_connection=local
|
||||||
php-8.1 php_version=8.1 ansible_connection=local
|
php-8.1 php_version=8.1 ansible_connection=local
|
||||||
|
php-8.2 php_version=8.2 ansible_connection=local
|
||||||
|
|||||||
@@ -8,24 +8,18 @@ set -o pipefail
|
|||||||
# Get absolute directory of this script
|
# Get absolute directory of this script
|
||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
|
IMAGE="${1}"
|
||||||
|
ARCH="${2}"
|
||||||
|
TAG_BASE="${3}"
|
||||||
|
TAG_MODS="${4}"
|
||||||
|
VERSION="${5:-}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Show Usage
|
### Show Usage
|
||||||
###
|
###
|
||||||
print_usage() {
|
print_usage() {
|
||||||
echo "Usage: gen-readme.sh"
|
echo "Usage: gen-readme.sh <IMAGE> <ARCH> <TAG_BASE> <TAG_MODS> [<VERSION>]"
|
||||||
echo " gen-readme.sh 5.2"
|
|
||||||
echo " gen-readme.sh 5.3"
|
|
||||||
echo " gen-readme.sh 5.4"
|
|
||||||
echo " gen-readme.sh 5.5"
|
|
||||||
echo " gen-readme.sh 5.6"
|
|
||||||
echo " gen-readme.sh 7.0"
|
|
||||||
echo " gen-readme.sh 7.1"
|
|
||||||
echo " gen-readme.sh 7.2"
|
|
||||||
echo " gen-readme.sh 7.3"
|
|
||||||
echo " gen-readme.sh 7.4"
|
|
||||||
echo " gen-readme.sh 8.0"
|
|
||||||
echo " gen-readme.sh 8.1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -33,25 +27,24 @@ print_usage() {
|
|||||||
### Extract PHP modules in alphabetical order and comma separated in one line
|
### Extract PHP modules in alphabetical order and comma separated in one line
|
||||||
###
|
###
|
||||||
get_modules() {
|
get_modules() {
|
||||||
tag="${1}"
|
current_tag="${1}"
|
||||||
|
|
||||||
# Retrieve all modules
|
# Retrieve all modules
|
||||||
PHP_MODULES="$( docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=php devilbox/php-fpm:${tag} -m )"
|
PHP_MODULES="$( docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=php "${IMAGE}:${current_tag}" -m )"
|
||||||
ALL_MODULES=
|
ALL_MODULES=
|
||||||
|
|
||||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then
|
if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'ioncube.so' | grep -q ioncube.so; then
|
||||||
ALL_MODULES="${ALL_MODULES},ioncube";
|
ALL_MODULES="${ALL_MODULES},ioncube";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then
|
if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'blackfire.so' | grep -q blackfire.so; then
|
||||||
ALL_MODULES="${ALL_MODULES},blackfire";
|
ALL_MODULES="${ALL_MODULES},blackfire";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then
|
if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'psr.so' | grep -q psr.so; then
|
||||||
ALL_MODULES="${ALL_MODULES},psr";
|
ALL_MODULES="${ALL_MODULES},psr";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if docker run --rm $(tty -s && echo '-it' || echo) --entrypoint=find devilbox/php-fpm:${tag} /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then
|
if docker run --rm --platform "${ARCH}" "$(tty -s && echo '-it' || echo)" --entrypoint=find "${IMAGE}:${current_tag}" /usr/local/lib/php/extensions -name 'phalcon.so' | grep -q phalcon.so; then
|
||||||
ALL_MODULES="${ALL_MODULES},phalcon";
|
ALL_MODULES="${ALL_MODULES},phalcon";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -82,15 +75,15 @@ get_modules() {
|
|||||||
update_readme() {
|
update_readme() {
|
||||||
v="${1}"
|
v="${1}"
|
||||||
# Those sections must exist in README.md, otherwise this script will exit with errors
|
# Those sections must exist in README.md, otherwise this script will exit with errors
|
||||||
sed -i'' "s|<td id=\"${v//.}-base\">.*<\/td>|<td id=\"${v//.}-base\">$( get_modules "${v}-base" )<\/td>|g" "${CWD}/../README.md"
|
sed -i'' "s|<td id=\"${v//.}-base\">.*<\/td>|<td id=\"${v//.}-base\">$( get_modules "${TAG_BASE}" )<\/td>|g" "${CWD}/../README.md"
|
||||||
sed -i'' "s|<td id=\"${v//.}-mods\">.*<\/td>|<td id=\"${v//.}-mods\">$( get_modules "${v}-mods" )<\/td>|g" "${CWD}/../README.md"
|
sed -i'' "s|<td id=\"${v//.}-mods\">.*<\/td>|<td id=\"${v//.}-mods\">$( get_modules "${TAG_MODS}" )<\/td>|g" "${CWD}/../README.md"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Entrypoint
|
### Entrypoint
|
||||||
###
|
###
|
||||||
if [ "${#}" -eq "0" ]; then
|
if [ "${VERSION}" = "" ]; then
|
||||||
# Update PHP modules for all versions at once
|
# Update PHP modules for all versions at once
|
||||||
update_readme "5.2"
|
update_readme "5.2"
|
||||||
update_readme "5.3"
|
update_readme "5.3"
|
||||||
@@ -104,30 +97,27 @@ if [ "${#}" -eq "0" ]; then
|
|||||||
update_readme "7.4"
|
update_readme "7.4"
|
||||||
update_readme "8.0"
|
update_readme "8.0"
|
||||||
update_readme "8.1"
|
update_readme "8.1"
|
||||||
elif [ "${#}" -gt "1" ]; then
|
update_readme "8.2"
|
||||||
# Specifying more than 1 argument is wrong
|
|
||||||
echo "Error, invalid number of arguments."
|
|
||||||
print_usage
|
|
||||||
exit 1
|
|
||||||
else
|
else
|
||||||
if [ "${1}" != "5.2" ] \
|
if [ "${VERSION}" != "5.2" ] \
|
||||||
&& [ "${1}" != "5.3" ] \
|
&& [ "${VERSION}" != "5.3" ] \
|
||||||
&& [ "${1}" != "5.4" ] \
|
&& [ "${VERSION}" != "5.4" ] \
|
||||||
&& [ "${1}" != "5.5" ] \
|
&& [ "${VERSION}" != "5.5" ] \
|
||||||
&& [ "${1}" != "5.6" ] \
|
&& [ "${VERSION}" != "5.6" ] \
|
||||||
&& [ "${1}" != "7.0" ] \
|
&& [ "${VERSION}" != "7.0" ] \
|
||||||
&& [ "${1}" != "7.1" ] \
|
&& [ "${VERSION}" != "7.1" ] \
|
||||||
&& [ "${1}" != "7.2" ] \
|
&& [ "${VERSION}" != "7.2" ] \
|
||||||
&& [ "${1}" != "7.3" ] \
|
&& [ "${VERSION}" != "7.3" ] \
|
||||||
&& [ "${1}" != "7.4" ] \
|
&& [ "${VERSION}" != "7.4" ] \
|
||||||
&& [ "${1}" != "8.0" ] \
|
&& [ "${VERSION}" != "8.0" ] \
|
||||||
&& [ "${1}" != "8.1" ]; then
|
&& [ "${VERSION}" != "8.1" ] \
|
||||||
|
&& [ "${VERSION}" != "8.2" ]; then
|
||||||
# Argument does not match any of the PHP versions
|
# Argument does not match any of the PHP versions
|
||||||
echo "Error, invalid argument."
|
echo "Error, invalid argument."
|
||||||
print_usage
|
print_usage
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Update PHP modules for one specific PHP version
|
# Update PHP modules for one specific PHP version
|
||||||
update_readme "${1}"
|
update_readme "${VERSION}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
191
tests/.lib.sh
191
tests/.lib.sh
@@ -10,11 +10,11 @@ set -o pipefail
|
|||||||
###
|
###
|
||||||
function run() {
|
function run() {
|
||||||
local cmd="${1}"
|
local cmd="${1}"
|
||||||
local to_stderr=0
|
local to_stdout=0
|
||||||
|
|
||||||
# Output to stderr instead?
|
# Output to stdout instead?
|
||||||
if [ "${#}" -eq "2" ]; then
|
if [ "${#}" -eq "2" ]; then
|
||||||
to_stderr="${2}"
|
to_stdout="${2}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local red="\033[0;31m"
|
local red="\033[0;31m"
|
||||||
@@ -22,24 +22,24 @@ function run() {
|
|||||||
local yellow="\033[0;33m"
|
local yellow="\033[0;33m"
|
||||||
local reset="\033[0m"
|
local reset="\033[0m"
|
||||||
|
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)"
|
|
||||||
else
|
|
||||||
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
||||||
|
else
|
||||||
|
printf "${yellow}[%s] ${red}%s \$ ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if sh -c "${cmd}"; then
|
if sh -c "${cmd}"; then
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${green}[%s]${reset}\n" "OK"
|
|
||||||
else
|
|
||||||
printf "${green}[%s]${reset}\n" "OK" >&2
|
printf "${green}[%s]${reset}\n" "OK" >&2
|
||||||
|
else
|
||||||
|
printf "${green}[%s]${reset}\n" "OK"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${red}[%s]${reset}\n" "NO"
|
|
||||||
else
|
|
||||||
printf "${red}[%s]${reset}\n" "NO" >&2
|
printf "${red}[%s]${reset}\n" "NO" >&2
|
||||||
|
else
|
||||||
|
printf "${red}[%s]${reset}\n" "NO"
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -49,11 +49,11 @@ function run() {
|
|||||||
###
|
###
|
||||||
function run_fail() {
|
function run_fail() {
|
||||||
local cmd="${1}"
|
local cmd="${1}"
|
||||||
local to_stderr=0
|
local to_stdout=0
|
||||||
|
|
||||||
# Output to stderr instead?
|
# Output to stdout instead?
|
||||||
if [ "${#}" -eq "2" ]; then
|
if [ "${#}" -eq "2" ]; then
|
||||||
to_stderr="${2}"
|
to_stdout="${2}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local red="\033[0;31m"
|
local red="\033[0;31m"
|
||||||
@@ -61,29 +61,51 @@ function run_fail() {
|
|||||||
local yellow="\033[0;33m"
|
local yellow="\033[0;33m"
|
||||||
local reset="\033[0m"
|
local reset="\033[0m"
|
||||||
|
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)"
|
|
||||||
else
|
|
||||||
printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)" >&2
|
||||||
|
else
|
||||||
|
printf "${yellow}[%s] ${red}%s \$ ${yellow}[NOT] ${green}${cmd}${reset}\n" "$(hostname)" "$(whoami)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! sh -c "${cmd}"; then
|
if ! sh -c "${cmd}"; then
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${green}[%s]${reset}\n" "OK"
|
|
||||||
else
|
|
||||||
printf "${green}[%s]${reset}\n" "OK" >&2
|
printf "${green}[%s]${reset}\n" "OK" >&2
|
||||||
|
else
|
||||||
|
printf "${green}[%s]${reset}\n" "OK"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
if [ "${to_stderr}" -eq "0" ]; then
|
if [ "${to_stdout}" -eq "0" ]; then
|
||||||
printf "${red}[%s]${reset}\n" "NO"
|
|
||||||
else
|
|
||||||
printf "${red}[%s]${reset}\n" "NO" >&2
|
printf "${red}[%s]${reset}\n" "NO" >&2
|
||||||
|
else
|
||||||
|
printf "${red}[%s]${reset}\n" "NO"
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
### Print H2
|
||||||
|
###
|
||||||
|
function print_h2() {
|
||||||
|
local text="${1}"
|
||||||
|
|
||||||
|
local red="\033[0;31m"
|
||||||
|
local green="\033[0;32m"
|
||||||
|
local yellow="\033[0;33m"
|
||||||
|
local purple="\033[0;35m"
|
||||||
|
local reset="\033[0m"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
printf "${purple}%s${reset}\n" "###"
|
||||||
|
printf "${purple}%s${reset}\n" "### ${text}"
|
||||||
|
printf "${purple}%s${reset}\n" "###"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Get 15 character random word
|
### Get 15 character random word
|
||||||
###
|
###
|
||||||
@@ -93,8 +115,8 @@ function get_random_name() {
|
|||||||
local name=
|
local name=
|
||||||
|
|
||||||
for i in {1..15}; do
|
for i in {1..15}; do
|
||||||
rand="$( shuf -i 0-${len} -n 1 )"
|
rand="$( shuf -i "0-${len}" -n 1 )"
|
||||||
rand=$(( rand - 1 ))
|
rand="$(( rand - 1 ))"
|
||||||
name="${name}${chr[$rand]}"
|
name="${name}${chr[$rand]}"
|
||||||
i="${i}" # simply to get rid of shellcheck complaints
|
i="${i}" # simply to get rid of shellcheck complaints
|
||||||
done
|
done
|
||||||
@@ -107,22 +129,34 @@ function get_random_name() {
|
|||||||
###
|
###
|
||||||
function docker_run() {
|
function docker_run() {
|
||||||
local image_name="${1}"
|
local image_name="${1}"
|
||||||
|
local architecture="${2}"
|
||||||
shift
|
shift
|
||||||
|
shift
|
||||||
|
|
||||||
local args="${*}"
|
local args="${*}"
|
||||||
|
|
||||||
# Returns docker-id
|
# Returns docker-id
|
||||||
did="$( run "docker run --rm -d --name $( get_random_name ) ${args} ${image_name}" "1" )"
|
>&2 echo "------------------------------ [STARTING CONTAINER] ------------------------------"
|
||||||
sleep 10
|
name="$( get_random_name )"
|
||||||
|
run "docker run --rm --platform ${architecture} --name ${name} ${args} ${image_name} &" 1>&2
|
||||||
|
run "sleep 15"
|
||||||
|
|
||||||
# If it fails, start again in foreground to fail again, but show errors
|
>&2 echo "[CHECK IF RUNNING] docker ps"
|
||||||
if ! docker exec $(tty -s && echo "-it" || echo ) ${did} ls >/dev/null 2>&1; then
|
# Check docker ps if running
|
||||||
run "docker run --rm --name $( get_random_name ) ${args} ${image_name}" "1"
|
if ! run "docker ps | grep '${name}'" 1>&2; then
|
||||||
|
docker_stop "${name}"
|
||||||
|
>&2 echo "------------------------------ [STARTING CONTAINER] FAILED ------------------------------"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
# Check if we can ls
|
||||||
# Only get 8 digits of docker id
|
>&2 echo "[CHECK IF RUNNING] docker exec"
|
||||||
echo "${did}" | grep -Eo '^[0-9a-zA-Z]{8}'
|
if ! run "docker exec $(tty -s && echo "-it" || echo ) ${name} id" 1>&2; then
|
||||||
|
docker_stop "${name}"
|
||||||
|
>&2 echo "------------------------------ [STARTING CONTAINER] FAILED ------------------------------"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
>&2 echo "------------------------------ [STARTING CONTAINER] OK ------------------------------"
|
||||||
|
echo "${name}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -130,9 +164,9 @@ function docker_run() {
|
|||||||
### Show Docker logs
|
### Show Docker logs
|
||||||
###
|
###
|
||||||
function docker_logs() {
|
function docker_logs() {
|
||||||
local docker_id="${1}"
|
local name="${1}"
|
||||||
|
|
||||||
run "docker logs ${docker_id}"
|
run "docker logs ${name}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -140,28 +174,13 @@ function docker_logs() {
|
|||||||
### Docker exec
|
### Docker exec
|
||||||
###
|
###
|
||||||
function docker_exec() {
|
function docker_exec() {
|
||||||
local did="${1}"
|
local name="${1}"
|
||||||
local cmd="${2}"
|
local cmd="${2}"
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
local args="${*}"
|
local args="${*}"
|
||||||
|
|
||||||
run "docker exec ${args} $(tty -s && echo '-it' || echo) ${did} ${cmd}"
|
run "docker exec ${args} $(tty -s && echo '-it' || echo) ${name} ${cmd}"
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Get docker name
|
|
||||||
###
|
|
||||||
function docker_name() {
|
|
||||||
local did="${1}"
|
|
||||||
local name=
|
|
||||||
name="$( docker ps | grep "${did}" | awk '{print $(NF)}' )"
|
|
||||||
|
|
||||||
if [ -z "${name}" ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
echo "${name}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -169,15 +188,59 @@ function docker_name() {
|
|||||||
### Stop container
|
### Stop container
|
||||||
###
|
###
|
||||||
function docker_stop() {
|
function docker_stop() {
|
||||||
local did="${1}"
|
local name="${1}"
|
||||||
local name=
|
|
||||||
name="$( docker ps --no-trunc --format='{{.ID}} {{.Names}}' | grep "${did}" | head -1 | awk '{print $2}' )"
|
|
||||||
# Stop
|
# Stop
|
||||||
run "docker stop ${did} >/dev/null"
|
run "docker stop ${name}" || true
|
||||||
if docker ps | grep -q "${did}"; then
|
run "docker kill ${name} || true" 2>/dev/null
|
||||||
run "docker kill ${did} >/dev/null" || true
|
run "docker rm -f ${name} || true" 2>/dev/null
|
||||||
fi
|
}
|
||||||
|
|
||||||
# Remove if still exist
|
|
||||||
run "docker rm ${name} >/dev/null 2>&1 || true"
|
###
|
||||||
|
### Check if PHP-FPM is up and running
|
||||||
|
###
|
||||||
|
function check_php_fpm_running() {
|
||||||
|
local name="${1}"
|
||||||
|
local retries="60"
|
||||||
|
local index="0"
|
||||||
|
|
||||||
|
>&2 echo
|
||||||
|
|
||||||
|
# PHP process
|
||||||
|
index=0
|
||||||
|
>&2 echo "Checking if PHP-FPM process is running..."
|
||||||
|
while ! run "docker exec ${name} ps auxwww | grep -E '(php-fpm|php-cgi)'"; do
|
||||||
|
>&2 printf "."
|
||||||
|
index="$(( index + 1 ))"
|
||||||
|
if [ "${index}" = "${retries}" ]; then
|
||||||
|
>&2 echo
|
||||||
|
run "docker exec ${name} ps auxwww"
|
||||||
|
>&2 echo "Failed to find PHP process after ${retries} seconds."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
>&2 echo
|
||||||
|
|
||||||
|
# Docker logs
|
||||||
|
index=0
|
||||||
|
>&2 echo "Checking if PHP-FPM shows success in docker logs..."
|
||||||
|
while ! run "docker logs ${name} 2>&1 | grep -E 'php-fpm entered RUNNING state|ready to handle connections|fpm is running'"; do
|
||||||
|
>&2 printf "."
|
||||||
|
index="$(( index + 1 ))"
|
||||||
|
if [ "${index}" = "${retries}" ]; then
|
||||||
|
>&2 echo
|
||||||
|
>&2 echo "Failed to find PHP success in docker logs after ${retries} seconds."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
>&2 echo
|
||||||
|
|
||||||
|
# Wait some more time for everyting else to settle
|
||||||
|
run "sleep 10"
|
||||||
|
|
||||||
|
|
||||||
|
# Echo newline and return
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -22,76 +24,112 @@ FLAVOUR="${3}"
|
|||||||
###
|
###
|
||||||
### Debug == 0
|
### Debug == 0
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=0" )"
|
print_h2 "DEBUG_ENTRYPOINT=0"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=0" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run_fail "docker logs ${did} 2>&1 | grep 'Debug level'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run_fail "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run_fail "docker logs ${name} 2>&1 | grep '\[INFO\]'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
if ! run_fail "docker logs ${name} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Debug == 1
|
### Debug == 1
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=1" )"
|
print_h2 "DEBUG_ENTRYPOINT=1"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=1" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 1'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep 'Debug level: 1'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
if ! run "docker logs ${name} 2>&1 | grep '\[INFO\]'"; then
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! run_fail "docker logs ${name} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Debug == 2
|
### Debug == 2
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2" )"
|
print_h2 "DEBUG_ENTRYPOINT=2"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep 'Debug level: 2'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run "docker logs ${did} 2>&1 | grep '\[INFO\]'"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep 'Debug level: 2'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run_fail "docker logs ${did} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
if ! run "docker logs ${name} 2>&1 | grep '\[INFO\]'"; then
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! run_fail "docker logs ${name} 2>&1 | grep -E '\[(ERR|\?\?\?)\]'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -22,58 +24,100 @@ FLAVOUR="${3}"
|
|||||||
###
|
###
|
||||||
### uid: 1005 (new uid)
|
### uid: 1005 (new uid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1005" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_UID=1005"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1005" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'uid=1005'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '1005'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'uid=1005'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### uid: 1000 (same uid)
|
### uid: 1000 (same uid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1000" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_UID=1000"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=1000" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'uid=1000'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '1000'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'uid=1000'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### uid: 33 (existing uid)
|
### uid: 33 (existing uid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=33" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_UID=33"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=33" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'uid=33'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '33'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'uid=33'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -22,58 +24,100 @@ FLAVOUR="${3}"
|
|||||||
###
|
###
|
||||||
### gid: 1005 (new gid)
|
### gid: 1005 (new gid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1005" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_GID=1005"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1005" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '1005'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'gid=1005'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '1005'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'gid=1005'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### gid: 1000 (same gid)
|
### gid: 1000 (same gid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1000" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_GID=1000"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=1000" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '1000'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'gid=1000'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '1000'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'gid=1000'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### gid: 33 (existing gid)
|
### gid: 33 (existing gid)
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=33" )"
|
print_h2 "DEBUG_ENTRYPOINT=2 NEW_GID=33"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_GID=33" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '33'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "id | grep 'gid=33'" "--user=devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
# Start Tests
|
||||||
docker_stop "${did}" || true
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q '33'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "id | grep 'gid=33'" "--user=devilbox"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -37,12 +39,26 @@ chmod 0777 "${CONFIG_HOST}"
|
|||||||
chmod 0777 "${DOC_ROOT_HOST}"
|
chmod 0777 "${DOC_ROOT_HOST}"
|
||||||
chmod 0644 "${DOC_ROOT_HOST}/index.php"
|
chmod 0644 "${DOC_ROOT_HOST}/index.php"
|
||||||
|
|
||||||
|
|
||||||
# Pull Image
|
# Pull Image
|
||||||
run "until docker pull ${CONTAINER}; do sleep 1; done"
|
print_h2 "Pulling Nginx"
|
||||||
|
run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done"
|
||||||
|
|
||||||
# Start PHP-FPM
|
# Start PHP-FPM
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )"
|
print_h2 "Starting PHP-FPM"
|
||||||
name="$( docker_name "${did}" )"
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT}" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Nginx.conf
|
# Nginx.conf
|
||||||
{
|
{
|
||||||
@@ -62,8 +78,11 @@ name="$( docker_name "${did}" )"
|
|||||||
} > "${CONFIG_HOST}/php.conf"
|
} > "${CONFIG_HOST}/php.conf"
|
||||||
|
|
||||||
# Start Nginx
|
# Start Nginx
|
||||||
ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )"
|
print_h2 "Starting Nginx"
|
||||||
|
if ! nginx_name="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )"; then
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
# Wait for both containers to be up and running
|
# Wait for both containers to be up and running
|
||||||
run "sleep 10"
|
run "sleep 10"
|
||||||
|
|
||||||
@@ -71,18 +90,18 @@ run "sleep 10"
|
|||||||
###
|
###
|
||||||
### Check correct PHP-FPM user
|
### Check correct PHP-FPM user
|
||||||
###
|
###
|
||||||
|
print_h2 "Check PHP-FPM user"
|
||||||
# On pm = ondemand, there will be no child process, so we need to create some traffic
|
# On pm = ondemand, there will be no child process, so we need to create some traffic
|
||||||
# in order to have child proccesses spawn
|
# in order to have child proccesses spawn
|
||||||
for i in $(seq 1 10); do
|
for i in $(seq 1 10); do
|
||||||
curl http://127.0.0.1:${WWW_PORT}/index.php?${i} >/dev/null 2>&1 &
|
curl "http://127.0.0.1:${WWW_PORT}/index.php?${i}" >/dev/null 2>&1 &
|
||||||
done
|
done
|
||||||
if ! docker_exec "${did}" "ps auxw | grep -E '(php-fpm: pool|php-cgi)' | grep -v grep | awk '{ print \$1 }' | tail -1 | grep devilbox"; then
|
if ! docker_exec "${name}" "ps auxw | grep -E '(php-fpm|php-cgi)' | grep -v grep | awk '{ print \$1 }' | tail -1 | grep devilbox"; then
|
||||||
docker_exec "${did}" "ps auxw"
|
docker_exec "${name}" "ps auxw"
|
||||||
|
|
||||||
# Shutdown
|
# Shutdown
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
@@ -94,6 +113,7 @@ fi
|
|||||||
###
|
###
|
||||||
### Test Nginx with PHP-FPM
|
### Test Nginx with PHP-FPM
|
||||||
###
|
###
|
||||||
|
print_h2 "Test Nginx with PHP-FPM"
|
||||||
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then
|
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDME}'"; then
|
||||||
|
|
||||||
# Info
|
# Info
|
||||||
@@ -101,25 +121,25 @@ if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>&1 | grep '${FINDM
|
|||||||
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "docker ps --no-trunc"
|
run "docker ps --no-trunc"
|
||||||
docker_exec "${ndid}" "nginx -t"
|
docker_exec "${nginx_name}" "nginx -t"
|
||||||
|
|
||||||
# Show logs
|
# Show logs
|
||||||
docker_logs "${ndid}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
|
||||||
# Ensure file is available
|
# Ensure file is available
|
||||||
docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${nginx_name}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${name}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
|
|
||||||
docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${nginx_name}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${name}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
|
|
||||||
# Nginx configuration
|
# Nginx configuration
|
||||||
docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf"
|
docker_exec "${nginx_name}" "cat ${CONFIG_CONT}/php.conf"
|
||||||
|
|
||||||
# Shutdown
|
# Shutdown
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
@@ -130,7 +150,8 @@ fi
|
|||||||
###
|
###
|
||||||
### Clean-up
|
### Clean-up
|
||||||
###
|
###
|
||||||
docker_stop "${did}"
|
print_h2 "Cleanup"
|
||||||
docker_stop "${ndid}"
|
docker_stop "${nginx_name}"
|
||||||
|
docker_stop "${name}"
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
|
|||||||
49
tests/base/06-test-apt-repositories.sh
Executable file
49
tests/base/06-test-apt-repositories.sh
Executable file
@@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
|
IMAGE="${1}"
|
||||||
|
ARCH="${2}"
|
||||||
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
|
# shellcheck disable=SC1090
|
||||||
|
. "${CWD}/../.lib.sh"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Tests
|
||||||
|
############################################################
|
||||||
|
|
||||||
|
###
|
||||||
|
### Ensuring 'apt update' works without any issues
|
||||||
|
###
|
||||||
|
print_h2 "Ensure 'apt update' works"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start Tests
|
||||||
|
print_h2 "Testing..."
|
||||||
|
if ! docker_exec "${name}" "apt update"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
@@ -21,7 +23,7 @@ FLAVOUR="${3}"
|
|||||||
|
|
||||||
ERROR=0
|
ERROR=0
|
||||||
for dir in $( ls -1 "${CWD}/modules/" ); do
|
for dir in $( ls -1 "${CWD}/modules/" ); do
|
||||||
if ! "${CWD}/modules.sh" "${IMAGE}" "${VERSION}" "${FLAVOUR}" "${dir}"; then
|
if ! "${CWD}/modules.sh" "${IMAGE}" "${ARCH}" "${VERSION}" "${FLAVOUR}" "${TAG}" "${dir}"; then
|
||||||
ERROR="$(( ERROR + 1 ))"
|
ERROR="$(( ERROR + 1 ))"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -6,15 +6,17 @@ set -o pipefail
|
|||||||
|
|
||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
if [ "${#}" != "4" ]; then
|
if [ "${#}" != "6" ]; then
|
||||||
>&2 echo "Error, requires 4 arguments: <IMAGE> <VERSION> <FLAVOUR> <MODULE>"
|
>&2 echo "Error, requires 6 arguments: <IMAGE> <ARCH> <VERSION> <FLAVOUR> <TAG> <MODULE>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
MODULE="${4}"
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
MODULE="${6}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -47,33 +49,34 @@ fi
|
|||||||
WORKDIR="/tmp/${MODULE}"
|
WORKDIR="/tmp/${MODULE}"
|
||||||
docker run \
|
docker run \
|
||||||
--rm \
|
--rm \
|
||||||
|
--platform "${ARCH}" \
|
||||||
-e DEBUG_ENTRYPOINT=0 \
|
-e DEBUG_ENTRYPOINT=0 \
|
||||||
-e NEW_UID="$(id -u)" \
|
-e NEW_UID="$(id -u)" \
|
||||||
-e NEW_GID="$(id -g)" \
|
-e NEW_GID="$(id -g)" \
|
||||||
-v "${CWD}/modules/${MODULE}:${WORKDIR}" \
|
-v "${CWD}/modules/${MODULE}:${WORKDIR}" \
|
||||||
--entrypoint=sh \
|
--entrypoint=sh \
|
||||||
--workdir="${WORKDIR}" \
|
--workdir="${WORKDIR}" \
|
||||||
"${IMAGE}:${VERSION}-${FLAVOUR}" \
|
"${IMAGE}:${TAG}" \
|
||||||
-c 'find . -name "*.php" -type f -print0 | xargs -0 -n1 sh -c "
|
-c 'find . -name "*.php" -type f -print0 | xargs -0 -n1 sh -c "
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
if [ -f \"\${1:-}\" ]; then
|
if [ -f \"\${1:-}\" ]; then
|
||||||
fail=0
|
error=0
|
||||||
printf \"[TEST] %s\" \"\${1}\"
|
|
||||||
|
|
||||||
if script -e -c \"php \${1}\" /dev/null 2>&1 | grep -Ei \"core|segmentation|fatal|except|err|warn|notice\" 2>&1 >/dev/null; then
|
if script -e -c \"php \${1}\" /dev/null 2>&1 | grep -Ei \"core|segmentation|fatal|except|err|warn|notice\" 2>&1 >/dev/null; then
|
||||||
fail=1
|
|
||||||
fi
|
|
||||||
if ! php \"\${1}\" 2>&1 | grep -E \"^(OK|SKIP)$\" 2>&1 >/dev/null; then
|
|
||||||
fail=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ \"\${fail}\" != \"0\" ]; then
|
|
||||||
printf \"\\r[FAIL] %s\\n\" \"\${1}\"
|
printf \"\\r[FAIL] %s\\n\" \"\${1}\"
|
||||||
php \"\${1}\" || true
|
php \"\${1}\" || true
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
printf \"\\r[OK] %s\\n\" \"\${1}\"
|
if php \"\${1}\" 2>&1 | grep -E \"^(OK)$\" 2>&1 >/dev/null; then
|
||||||
|
printf \"\\r[OK] %s\\n\" \"\${1}\"
|
||||||
|
elif php \"\${1}\" 2>&1 | grep -E \"^(SKIP)$\" 2>&1 >/dev/null; then
|
||||||
|
printf \"\\r[SKIP] %s\\n\" \"\${1}\"
|
||||||
|
else
|
||||||
|
printf \"\\r[FAIL] %s\\n\" \"\${1}\"
|
||||||
|
php \"\${1}\" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ ini_set('display_startup_errors', 1);
|
|||||||
ini_set('display_errors', 1);
|
ini_set('display_errors', 1);
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
|
|
||||||
|
// FIXME: Currently disabled for PHP 7.3 and PHP 7.4
|
||||||
|
if (PHP_MAJOR_VERSION == 7) {
|
||||||
|
if (PHP_MINOR_VERSION == 3 || PHP_MINOR_VERSION == 4) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$backend = 'aspell';
|
$backend = 'aspell';
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,13 @@ ini_set('display_startup_errors', 1);
|
|||||||
ini_set('display_errors', 1);
|
ini_set('display_errors', 1);
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
|
|
||||||
|
// FIXME: Currently disabled for PHP 7.3 and PHP 7.4
|
||||||
|
if (PHP_MAJOR_VERSION == 7) {
|
||||||
|
if (PHP_MINOR_VERSION == 3 || PHP_MINOR_VERSION == 4) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$backend = 'hspell';
|
$backend = 'hspell';
|
||||||
|
|
||||||
|
|||||||
51
tests/mods/modules/enchant/enchant-hunspell.php
Normal file
51
tests/mods/modules/enchant/enchant-hunspell.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This page should print 'OK' if everything works,
|
||||||
|
* 'FAIL' or nothing if an error occured.
|
||||||
|
*/
|
||||||
|
ini_set('display_startup_errors', 1);
|
||||||
|
ini_set('display_errors', 1);
|
||||||
|
error_reporting(-1);
|
||||||
|
|
||||||
|
// FIXME: Currently disabled for PHP 7.3 and PHP 7.4
|
||||||
|
if (PHP_MAJOR_VERSION == 7) {
|
||||||
|
if (PHP_MINOR_VERSION == 3 || PHP_MINOR_VERSION == 4) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMPORTANT:
|
||||||
|
* ----------
|
||||||
|
* The Myspell backend has been renamed to Hunspell to match the upstream
|
||||||
|
* project. Users with their own enchant.ordering files will need to change
|
||||||
|
* "myspell" to "hunspell" (as of enchant 2.0)
|
||||||
|
* https://github.com/AbiWord/enchant/blob/master/NEWS
|
||||||
|
*/
|
||||||
|
// Only available since 5.4.0
|
||||||
|
if (version_compare(PHP_VERSION, '7.3.0', '<')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
$backend = 'hunspell';
|
||||||
|
|
||||||
|
$tag = 'en_US';
|
||||||
|
if (($r = enchant_broker_init()) === FALSE) {
|
||||||
|
echo 'FAIL: enchant_broker_init()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (($bprovides = enchant_broker_describe($r)) === FALSE) {
|
||||||
|
echo 'FAIL: enchant_broker_describe()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($bprovides as $be) {
|
||||||
|
if ($be['name'] == $backend) {
|
||||||
|
echo 'OK';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo 'FAIL: "'. $backend . '" not available';
|
||||||
|
exit(1);
|
||||||
@@ -7,6 +7,22 @@ ini_set('display_startup_errors', 1);
|
|||||||
ini_set('display_errors', 1);
|
ini_set('display_errors', 1);
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
|
|
||||||
|
// FIXME: Currently disabled for PHP 7.3 and PHP 7.4
|
||||||
|
if (PHP_MAJOR_VERSION == 7) {
|
||||||
|
if (PHP_MINOR_VERSION == 3 || PHP_MINOR_VERSION == 4) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: Currently not available for PHP 8.0 and PHP 8.1
|
||||||
|
if (PHP_MAJOR_VERSION == 8) {
|
||||||
|
if (PHP_MINOR_VERSION == 0 || PHP_MINOR_VERSION == 1 || PHP_MINOR_VERSION == 2) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$backend = 'ispell';
|
$backend = 'ispell';
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,27 @@ ini_set('display_startup_errors', 1);
|
|||||||
ini_set('display_errors', 1);
|
ini_set('display_errors', 1);
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
|
|
||||||
|
// FIXME: Currently disabled for PHP 7.3 and PHP 7.4
|
||||||
|
if (PHP_MAJOR_VERSION == 7) {
|
||||||
|
if (PHP_MINOR_VERSION == 3 || PHP_MINOR_VERSION == 4) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMPORTANT:
|
||||||
|
* ----------
|
||||||
|
* The Myspell backend has been renamed to Hunspell to match the upstream
|
||||||
|
* project. Users with their own enchant.ordering files will need to change
|
||||||
|
* "myspell" to "hunspell" (as of enchant 2.0)
|
||||||
|
* https://github.com/AbiWord/enchant/blob/master/NEWS
|
||||||
|
*/
|
||||||
|
// Only available since 5.4.0
|
||||||
|
if (version_compare(PHP_VERSION, '7.3.0', '>=')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
$backend = 'myspell';
|
$backend = 'myspell';
|
||||||
|
|
||||||
|
|||||||
23
tests/mods/modules/gd/gd-avif.php
Normal file
23
tests/mods/modules/gd/gd-avif.php
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This page should print 'OK' if everything works,
|
||||||
|
* 'FAIL' or nothing if an error occured.
|
||||||
|
*/
|
||||||
|
ini_set('display_startup_errors', 1);
|
||||||
|
ini_set('display_errors', 1);
|
||||||
|
error_reporting(-1);
|
||||||
|
|
||||||
|
|
||||||
|
// Only available since PHP 8.1.x
|
||||||
|
if (version_compare(PHP_VERSION, '8.1.0', '<=')) {
|
||||||
|
echo 'SKIP';
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for support
|
||||||
|
if (!function_exists('imageavif')) {
|
||||||
|
echo 'FAIL: imageavif()';
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'OK';
|
||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -22,25 +24,39 @@ FLAVOUR="${3}"
|
|||||||
###
|
###
|
||||||
### Europe/Berlin
|
### Europe/Berlin
|
||||||
###
|
###
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )"
|
print_h2 "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin"
|
||||||
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e TIMEZONE=Europe/Berlin" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'Europe/Berlin'"; then
|
# Check if PHP-FPM is running
|
||||||
docker_logs "${did}" || true
|
print_h2 "Check if PHP-FPM is running"
|
||||||
docker_stop "${did}" || true
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "date | grep -E 'CE(S)*T'"; then
|
|
||||||
docker_exec "${did}" "date"
|
# Start Tests
|
||||||
docker_logs "${did}" || true
|
print_h2 "Testing..."
|
||||||
docker_stop "${did}" || true
|
if ! run "docker logs ${name} 2>&1 | grep -q 'Europe/Berlin'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "php -i | grep -E 'date\.timezone' | grep 'Europe/Berlin'"; then
|
if ! docker_exec "${name}" "date | grep -E 'CE(S)*T'"; then
|
||||||
docker_logs "${did}" || true
|
docker_exec "${name}" "date"
|
||||||
docker_stop "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
docker_stop "${did}"
|
if ! docker_exec "${name}" "php -i | grep -E 'date\.timezone' | grep 'Europe/Berlin'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
docker_stop "${name}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -40,13 +42,28 @@ chmod 0777 -R "${CFG_DIR_HOST}"
|
|||||||
chmod 0777 -R "${WWW_DIR_HOST}"
|
chmod 0777 -R "${WWW_DIR_HOST}"
|
||||||
|
|
||||||
|
|
||||||
|
# Pull Image
|
||||||
|
print_h2 "Pulling Nginx"
|
||||||
|
run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done"
|
||||||
|
|
||||||
###
|
###
|
||||||
### Start container
|
### Start container
|
||||||
###
|
###
|
||||||
|
|
||||||
# Start PHP-FPM
|
# Start PHP-FPM
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=1 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )"
|
print_h2 "Starting PHP-FPM"
|
||||||
name="$( docker_name "${did}" )"
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=1 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Nginx.conf
|
# Nginx.conf
|
||||||
{
|
{
|
||||||
@@ -67,8 +84,11 @@ name="$( docker_name "${did}" )"
|
|||||||
|
|
||||||
|
|
||||||
# Start Nginx
|
# Start Nginx
|
||||||
ndid="$( docker_run "${CONTAINER}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )"
|
print_h2 "Starting Nginx"
|
||||||
|
if ! nginx_name="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )"; then
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
# Wait for both containers to be up and running
|
# Wait for both containers to be up and running
|
||||||
run "sleep 10"
|
run "sleep 10"
|
||||||
|
|
||||||
@@ -76,6 +96,7 @@ run "sleep 10"
|
|||||||
###
|
###
|
||||||
### Fire positive and error generating request
|
### Fire positive and error generating request
|
||||||
###
|
###
|
||||||
|
print_h2 "Fire curl requests"
|
||||||
run "curl http://localhost:${WWW_PORT}/ok.php"
|
run "curl http://localhost:${WWW_PORT}/ok.php"
|
||||||
run "curl http://localhost:${WWW_PORT}/fail.php"
|
run "curl http://localhost:${WWW_PORT}/fail.php"
|
||||||
|
|
||||||
@@ -83,10 +104,12 @@ run "curl http://localhost:${WWW_PORT}/fail.php"
|
|||||||
###
|
###
|
||||||
### Run tests
|
### Run tests
|
||||||
###
|
###
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then
|
print_h2 "Checking DOCKER_LOGS"
|
||||||
docker_logs "${did}" || true
|
if ! run "docker logs ${name} 2>&1 | grep 'DOCKER_LOGS'"; then
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -94,13 +117,15 @@ if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${LOG_DIR_HOST}/php-fpm.access" ]; then
|
print_h2 "Ensure php-fpm.access does not exist"
|
||||||
|
if ! run_fail "test -f ${LOG_DIR_HOST}/php-fpm.access"; then
|
||||||
echo "Access log should not exist: ${LOG_DIR_HOST}/php-fpm.access"
|
echo "Access log should not exist: ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
cat "${LOG_DIR_HOST}/php-fpm.access"
|
cat "${LOG_DIR_HOST}/php-fpm.access"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -108,13 +133,15 @@ if [ -f "${LOG_DIR_HOST}/php-fpm.access" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "${LOG_DIR_HOST}/php-fpm.error" ]; then
|
print_h2 "Ensure php-fpm.error does not exist"
|
||||||
|
if ! run_fail "test -f ${LOG_DIR_HOST}/php-fpm.error"; then
|
||||||
echo "Error log should not exist: ${LOG_DIR_HOST}/php-fpm.error"
|
echo "Error log should not exist: ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
cat "${LOG_DIR_HOST}/php-fpm.error"
|
cat "${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -126,33 +153,39 @@ fi
|
|||||||
### PHP 5.2 still does not show any errors
|
### PHP 5.2 still does not show any errors
|
||||||
###
|
###
|
||||||
if [ "${VERSION}" != "5.2" ]; then
|
if [ "${VERSION}" != "5.2" ]; then
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'GET /ok.php'"; then
|
print_h2 "Ensure stderr access logging is enabled"
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep 'GET /ok.php'"; then
|
||||||
echo "Error no access log string for 'GET /ok.php' found in stderr"
|
echo "Error no access log string for 'GET /ok.php' found in stderr"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'GET /fail.php'"; then
|
print_h2 "Ensure stderr access logging is enabled"
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep 'GET /fail.php'"; then
|
||||||
echo "Error no access log string for 'GET /fail.php' found in stderr"
|
echo "Error no access log string for 'GET /fail.php' found in stderr"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q '/var/www/default/fail.php'"; then
|
print_h2 "Ensure errors are logged to stderr"
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep '/var/www/default/fail.php'"; then
|
||||||
echo "Error no error message found in stderr"
|
echo "Error no error message found in stderr"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -165,8 +198,9 @@ fi
|
|||||||
###
|
###
|
||||||
### Shutdown
|
### Shutdown
|
||||||
###
|
###
|
||||||
docker_stop "${ndid}" || true
|
print_h2 "Cleanup"
|
||||||
docker_stop "${did}"
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -40,13 +42,28 @@ chmod 0777 -R "${CFG_DIR_HOST}"
|
|||||||
chmod 0777 -R "${WWW_DIR_HOST}"
|
chmod 0777 -R "${WWW_DIR_HOST}"
|
||||||
|
|
||||||
|
|
||||||
|
# Pull Image
|
||||||
|
print_h2 "Pulling Nginx"
|
||||||
|
run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done"
|
||||||
|
|
||||||
###
|
###
|
||||||
### Start container
|
### Start container
|
||||||
###
|
###
|
||||||
|
|
||||||
# Start PHP-FPM
|
# Start PHP-FPM
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=0 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )"
|
print_h2 "Starting PHP-FPM"
|
||||||
name="$( docker_name "${did}" )"
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e DOCKER_LOGS=0 -v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${LOG_DIR_HOST}:/var/log/php" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Nginx.conf
|
# Nginx.conf
|
||||||
{
|
{
|
||||||
@@ -67,7 +84,11 @@ name="$( docker_name "${did}" )"
|
|||||||
|
|
||||||
|
|
||||||
# Start Nginx
|
# Start Nginx
|
||||||
ndid="$( docker_run "${CONTAINER}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )"
|
print_h2 "Starting Nginx"
|
||||||
|
if ! nginx_name="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${WWW_DIR_HOST}:${WWW_DIR_CONT} -v ${CFG_DIR_HOST}:${CFG_DIR_CONT} -p ${WWW_PORT}:80 --link ${name}" )"; then
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Wait for both containers to be up and running
|
# Wait for both containers to be up and running
|
||||||
run "sleep 10"
|
run "sleep 10"
|
||||||
@@ -76,6 +97,7 @@ run "sleep 10"
|
|||||||
###
|
###
|
||||||
### Fire positive and error generating request
|
### Fire positive and error generating request
|
||||||
###
|
###
|
||||||
|
print_h2 "Fire curl requests"
|
||||||
run "curl http://localhost:${WWW_PORT}/ok.php"
|
run "curl http://localhost:${WWW_PORT}/ok.php"
|
||||||
run "curl http://localhost:${WWW_PORT}/fail.php"
|
run "curl http://localhost:${WWW_PORT}/fail.php"
|
||||||
|
|
||||||
@@ -83,10 +105,11 @@ run "curl http://localhost:${WWW_PORT}/fail.php"
|
|||||||
###
|
###
|
||||||
### Run tests
|
### Run tests
|
||||||
###
|
###
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then
|
print_h2 "Checking DOCKER_LOGS"
|
||||||
docker_logs "${did}" || true
|
if ! run "docker logs ${name} 2>&1 | grep 'DOCKER_LOGS'"; then
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -94,24 +117,29 @@ if ! run "docker logs ${did} 2>&1 | grep -q 'DOCKER_LOGS'"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "${LOG_DIR_HOST}/php-fpm.access" ]; then
|
print_h2 "Ensure php-fpm.access exists"
|
||||||
|
if ! run "test -f ${LOG_DIR_HOST}/php-fpm.access"; then
|
||||||
echo "Access log does not exist: ${LOG_DIR_HOST}/php-fpm.access"
|
echo "Access log does not exist: ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [ ! -r "${LOG_DIR_HOST}/php-fpm.access" ]; then
|
|
||||||
|
print_h2 "Ensure php-fpm.access is readable"
|
||||||
|
if ! run "test -r ${LOG_DIR_HOST}/php-fpm.access"; then
|
||||||
echo "Access log is not readable"
|
echo "Access log is not readable"
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -119,24 +147,14 @@ if [ ! -r "${LOG_DIR_HOST}/php-fpm.access" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f "${LOG_DIR_HOST}/php-fpm.error" ]; then
|
print_h2 "Ensure php-fpm.error exists"
|
||||||
|
if ! run "test -f ${LOG_DIR_HOST}/php-fpm.error"; then
|
||||||
echo "Error log does not exist: ${LOG_DIR_HOST}/php-fpm.error"
|
echo "Error log does not exist: ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
docker_stop "${name}" || true
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
|
||||||
echo "Failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -r "${LOG_DIR_HOST}/php-fpm.error" ]; then
|
|
||||||
echo "Error log is not readable"
|
|
||||||
ls -lap ${LOG_DIR_HOST}/
|
|
||||||
docker_logs "${did}" || true
|
|
||||||
docker_stop "${ndid}" || true
|
|
||||||
docker_stop "${did}" || true
|
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -144,40 +162,62 @@ if [ ! -r "${LOG_DIR_HOST}/php-fpm.error" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure no access/error goes to stderr
|
print_h2 "Ensure php-fpm.error is readable"
|
||||||
if run "docker logs ${did} 2>&1 | grep -q 'GET /ok.php'"; then
|
if ! run "test -r ${LOG_DIR_HOST}/php-fpm.error"; then
|
||||||
|
echo "Error log is not readable"
|
||||||
|
ls -lap "${LOG_DIR_HOST}/"
|
||||||
|
docker_logs "${nginx_name}" || true
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_h2 "Ensure no access/error logging exists in stderr (ok.php)"
|
||||||
|
if run "docker logs ${name} 2>&1 | grep 'GET /ok.php'"; then
|
||||||
echo "Error access log string for 'GET /ok.php' found in stderr, but shold go to file"
|
echo "Error access log string for 'GET /ok.php' found in stderr, but shold go to file"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if run "docker logs ${did} 2>&1 | grep -q 'GET /fail.php'"; then
|
|
||||||
|
print_h2 "Ensure no access/error logging exists in stderr (fail.php)"
|
||||||
|
if run "docker logs ${name} 2>&1 | grep 'GET /fail.php'"; then
|
||||||
echo "Error access log string for 'GET /fail.php' found in stderr, but should go to file"
|
echo "Error access log string for 'GET /fail.php' found in stderr, but should go to file"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if run "docker logs ${did} 2>&1 | grep -q '/var/www/default/fail.php'"; then
|
|
||||||
|
print_h2 "Ensure no error message is present in stderr"
|
||||||
|
if run "docker logs ${name} 2>&1 | grep '/var/www/default/fail.php'"; then
|
||||||
echo "Error error message found in stderr, but should go to file"
|
echo "Error error message found in stderr, but should go to file"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -188,26 +228,31 @@ fi
|
|||||||
# PHP-FPM 5.2 does not show access logs
|
# PHP-FPM 5.2 does not show access logs
|
||||||
if [ "${VERSION}" != "5.2" ]; then
|
if [ "${VERSION}" != "5.2" ]; then
|
||||||
# Test access and error file for correct content
|
# Test access and error file for correct content
|
||||||
if ! run "grep -q 'GET /ok.php' ${LOG_DIR_HOST}/php-fpm.access"; then
|
print_h2 "Test access logs in php-fpm.access (ok.php)"
|
||||||
|
if ! run "grep 'GET /ok.php' ${LOG_DIR_HOST}/php-fpm.access"; then
|
||||||
echo "Error no access log string for 'GET /ok.php' found in: ${LOG_DIR_HOST}/php-fpm.access"
|
echo "Error no access log string for 'GET /ok.php' found in: ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! run "grep -q 'GET /fail.php' ${LOG_DIR_HOST}/php-fpm.access"; then
|
|
||||||
|
print_h2 "Test access logs in php-fpm.access (fail.php)"
|
||||||
|
if ! run "grep 'GET /fail.php' ${LOG_DIR_HOST}/php-fpm.access"; then
|
||||||
echo "Error no access log string for 'GET /fail.php' found in: ${LOG_DIR_HOST}/php-fpm.access"
|
echo "Error no access log string for 'GET /fail.php' found in: ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -215,13 +260,16 @@ if [ "${VERSION}" != "5.2" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if ! run "grep -q '/var/www/default/fail.php' ${LOG_DIR_HOST}/php-fpm.error"; then
|
|
||||||
|
print_h2 "Ensiure error message is present in php-fpm.error"
|
||||||
|
if ! run "grep '/var/www/default/fail.php' ${LOG_DIR_HOST}/php-fpm.error"; then
|
||||||
echo "Error no error message found in: ${LOG_DIR_HOST}/php-fpm.error"
|
echo "Error no error message found in: ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${nginx_name}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
@@ -233,12 +281,13 @@ fi
|
|||||||
###
|
###
|
||||||
### Shutdown
|
### Shutdown
|
||||||
###
|
###
|
||||||
docker_logs "${did}" || true
|
print_h2 "Cleanup"
|
||||||
|
docker_logs "${name}" || true
|
||||||
run "ls -lap ${LOG_DIR_HOST}/"
|
run "ls -lap ${LOG_DIR_HOST}/"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
run "cat ${LOG_DIR_HOST}/php-fpm.access"
|
||||||
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
run "cat ${LOG_DIR_HOST}/php-fpm.error"
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${nginx_name}" || true
|
||||||
docker_stop "${did}"
|
docker_stop "${name}"
|
||||||
rm -rf "${LOG_DIR_HOST}"
|
rm -rf "${LOG_DIR_HOST}"
|
||||||
rm -rf "${CFG_DIR_HOST}"
|
rm -rf "${CFG_DIR_HOST}"
|
||||||
rm -rf "${WWW_DIR_HOST}"
|
rm -rf "${WWW_DIR_HOST}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -23,12 +25,26 @@ FLAVOUR="${3}"
|
|||||||
### Postfix
|
### Postfix
|
||||||
###
|
###
|
||||||
MOUNTPOINT="$( mktemp --directory )"
|
MOUNTPOINT="$( mktemp --directory )"
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail" )"
|
|
||||||
run "sleep 10"
|
|
||||||
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep -q 'ENABLE_MAIL'"; then
|
print_h2 "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail"
|
||||||
docker_logs "${did}" || true
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -e ENABLE_MAIL=2 -v ${MOUNTPOINT}:/var/mail" )"; then
|
||||||
docker_stop "${did}" || true
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start Tests
|
||||||
|
print_h2 "Testing..."
|
||||||
|
if ! run "docker logs ${name} 2>&1 | grep -q 'ENABLE_MAIL'"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${MOUNTPOINT}"
|
rm -rf "${MOUNTPOINT}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -37,8 +53,8 @@ fi
|
|||||||
if [ ! -f "${MOUNTPOINT}/devilbox" ]; then
|
if [ ! -f "${MOUNTPOINT}/devilbox" ]; then
|
||||||
echo "Mail file does not exist: ${MOUNTPOINT}/devilbox"
|
echo "Mail file does not exist: ${MOUNTPOINT}/devilbox"
|
||||||
ls -lap "${MOUNTPOINT}/"
|
ls -lap "${MOUNTPOINT}/"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${MOUNTPOINT}"
|
rm -rf "${MOUNTPOINT}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
@@ -46,25 +62,37 @@ fi
|
|||||||
if [ ! -r "${MOUNTPOINT}/devilbox" ]; then
|
if [ ! -r "${MOUNTPOINT}/devilbox" ]; then
|
||||||
echo "Mail file is not readable"
|
echo "Mail file is not readable"
|
||||||
ls -lap "${MOUNTPOINT}/"
|
ls -lap "${MOUNTPOINT}/"
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${MOUNTPOINT}"
|
rm -rf "${MOUNTPOINT}"
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Send test email
|
# Send test email
|
||||||
docker_exec "${did}" "php -r \"mail('mailtest@devilbox.org', 'the subject', 'the message');\""
|
print_h2 "Send test email"
|
||||||
run "sleep 5"
|
docker_exec "${name}" "php -r \"mail('mailtest@devilbox.org', 'the subject', 'the message');\""
|
||||||
|
|
||||||
if ! run "grep 'the subject' ${MOUNTPOINT}/devilbox"; then
|
|
||||||
docker_logs "${did}" || true
|
|
||||||
docker_stop "${did}" || true
|
|
||||||
run "cat ${MOUNTPOINT}/devilbox"
|
|
||||||
rm -rf "${MOUNTPOINT}"
|
|
||||||
echo "Failed"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
docker_stop "${did}"
|
# Probe if email has been received
|
||||||
|
print_h2 "Probe for sent email"
|
||||||
|
RETRIES=60
|
||||||
|
INDEX=0
|
||||||
|
while ! run "grep 'the subject' ${MOUNTPOINT}/devilbox"; do
|
||||||
|
if [ "${RETRIES}" = "${INDEX}" ]; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
run "cat ${MOUNTPOINT}/devilbox"
|
||||||
|
rm -rf "${MOUNTPOINT}"
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
INDEX="$(( INDEX + 1 ))"
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
print_h2 "Cleanup"
|
||||||
|
docker_stop "${name}"
|
||||||
rm -rf "${MOUNTPOINT}"
|
rm -rf "${MOUNTPOINT}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -22,52 +24,70 @@ FLAVOUR="${3}"
|
|||||||
###
|
###
|
||||||
### Socat forwarding
|
### Socat forwarding
|
||||||
###
|
###
|
||||||
CONTAINER="mysql:5.6"
|
CONTAINER="devilbox/mysql:mysql-8.0"
|
||||||
|
|
||||||
# Pull Container
|
# Pull Container
|
||||||
run "until docker pull ${CONTAINER}; do sleep 1; done"
|
print_h2 "Pulling MySQL"
|
||||||
|
run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done"
|
||||||
|
|
||||||
# Start mysql container
|
# Start mysql container
|
||||||
mdid="$( docker_run "${CONTAINER}" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )"
|
print_h2 "Starting MySQL"
|
||||||
mname="$( docker_name "${mdid}" )"
|
if ! name_mysql="$( docker_run "${CONTAINER}" "${ARCH}" "-e MYSQL_ALLOW_EMPTY_PASSWORD=yes" )"; then
|
||||||
run "sleep 5"
|
exit 1
|
||||||
|
fi
|
||||||
|
run "sleep 60"
|
||||||
|
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${mname}:3306 --link ${mname}" )"
|
|
||||||
if ! run "docker logs ${did} 2>&1 | grep 'Forwarding ${mname}:3306'"; then
|
# Start PHP-FPM
|
||||||
docker_logs "${did}" || true
|
print_h2 "Start PHP-FPM"
|
||||||
docker_logs "${mdid}" || true
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e FORWARD_PORTS_TO_LOCALHOST=3306:${name_mysql}:3306 --link ${name_mysql}" )"; then
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name_mysql}" || true
|
||||||
docker_stop "${mdid}" || true
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wait for both containers to come up
|
print_h2 "Ensure forwarding info is present in docker logs"
|
||||||
run "sleep 10"
|
if ! run "docker logs ${name} 2>&1 | grep 'Forwarding ${name_mysql}:3306'"; then
|
||||||
|
docker_logs "${name_mysql}" || true
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name_mysql}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Test connectivity
|
|
||||||
#docker_exec "${did}" "ping -c 1 ${mname}"
|
|
||||||
#docker_exec "${did}" "echo | nc -w 1 ${mname} 3306"
|
|
||||||
#docker_exec "${did}" "echo | nc -w 1 127.0.0.1 3306"
|
|
||||||
|
|
||||||
# Only work container has mysql binary installed
|
# Only work container has mysql binary installed
|
||||||
if [ "${FLAVOUR}" = "work" ]; then
|
if [ "${FLAVOUR}" = "work" ]; then
|
||||||
if ! docker_exec "${did}" "mysql --user=root --password= --host=${mname} -e 'SHOW DATABASES;'"; then
|
print_h2 "Test connectivity against hostname"
|
||||||
docker_logs "${did}" || true
|
if ! docker_exec "${name}" "mysql --user=root --password= --host=${name_mysql} -e 'SHOW DATABASES;'"; then
|
||||||
docker_logs "${mdid}" || true
|
docker_logs "${name_mysql}" || true
|
||||||
docker_stop "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${mdid}" || true
|
docker_stop "${name_mysql}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! docker_exec "${did}" "mysql --user=root --password= --host=127.0.0.1 -e 'SHOW DATABASES;'"; then
|
print_h2 "Test connectivity against 127.0.0.1"
|
||||||
docker_logs "${did}" || true
|
if ! docker_exec "${name}" "mysql --user=root --password= --host=127.0.0.1 -e 'SHOW DATABASES;'"; then
|
||||||
docker_logs "${mdid}" || true
|
docker_logs "${name_mysql}" || true
|
||||||
docker_stop "${did}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${mdid}" || true
|
docker_stop "${name_mysql}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
echo "Failed"
|
echo "Failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
docker_stop "${mdid}"
|
|
||||||
docker_stop "${did}"
|
|
||||||
|
print_h2 "Cleanup"
|
||||||
|
docker_stop "${name_mysql}"
|
||||||
|
docker_stop "${name}"
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ set -o pipefail
|
|||||||
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
CWD="$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
|
||||||
|
|
||||||
IMAGE="${1}"
|
IMAGE="${1}"
|
||||||
VERSION="${2}"
|
ARCH="${2}"
|
||||||
FLAVOUR="${3}"
|
VERSION="${3}"
|
||||||
|
FLAVOUR="${4}"
|
||||||
|
TAG="${5}"
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
. "${CWD}/../.lib.sh"
|
. "${CWD}/../.lib.sh"
|
||||||
@@ -43,12 +45,25 @@ chmod 0777 "${PHP_INI_HOST}"
|
|||||||
chmod 0777 "${DOC_ROOT_HOST}"
|
chmod 0777 "${DOC_ROOT_HOST}"
|
||||||
chmod 0644 "${DOC_ROOT_HOST}/index.php"
|
chmod 0644 "${DOC_ROOT_HOST}/index.php"
|
||||||
|
|
||||||
|
|
||||||
# Pull container
|
# Pull container
|
||||||
run "until docker pull ${CONTAINER}; do sleep 1; done"
|
print_h2 "Pulling Nginx"
|
||||||
|
run "until docker pull --platform ${ARCH} ${CONTAINER}; do sleep 1; done"
|
||||||
|
|
||||||
# Start PHP-FPM
|
# Start PHP-FPM
|
||||||
did="$( docker_run "${IMAGE}:${VERSION}-${FLAVOUR}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )"
|
print_h2 "Starting PHP-FPM"
|
||||||
name="$( docker_name "${did}" )"
|
if ! name="$( docker_run "${IMAGE}:${TAG}" "${ARCH}" "-e DEBUG_ENTRYPOINT=2 -e NEW_UID=$(id -u) -e NEW_GID=$(id -g) -v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${PHP_INI_HOST}:${PHP_INI_CONT}" )"; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if PHP-FPM is running
|
||||||
|
print_h2 "Check if PHP-FPM is running"
|
||||||
|
if ! check_php_fpm_running "${name}"; then
|
||||||
|
docker_logs "${name}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
echo "Failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Nginx.conf
|
# Nginx.conf
|
||||||
{
|
{
|
||||||
@@ -69,17 +84,21 @@ name="$( docker_name "${did}" )"
|
|||||||
|
|
||||||
|
|
||||||
# Start Nginx
|
# Start Nginx
|
||||||
ndid="$( docker_run "${CONTAINER}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )"
|
print_h2 "Starting Nginx"
|
||||||
|
if ! name_nginx="$( docker_run "${CONTAINER}" "${ARCH}" "-v ${DOC_ROOT_HOST}:${DOC_ROOT_CONT} -v ${CONFIG_HOST}:${CONFIG_CONT} -p ${WWW_PORT}:80 --link ${name}" )"; then
|
||||||
|
docker_stop "${name}" || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
# Wait for both containers to be up and running
|
# Wait for both containers to be up and running
|
||||||
run "sleep 10"
|
run "sleep 10"
|
||||||
|
|
||||||
# Check entrypoint
|
# Check entrypoint
|
||||||
if ! run "docker logs ${did} | grep 'post.ini'"; then
|
print_h2 "Checking entrypoint"
|
||||||
docker_logs "${ndid}" || true
|
if ! run "docker logs ${name} | grep 'post.ini'"; then
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name_nginx}" || true
|
||||||
docker_stop "${ndid}" || true
|
docker_logs "${name}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name_nginx}" || true
|
||||||
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
rm -rf "${PHP_INI_HOST}"
|
rm -rf "${PHP_INI_HOST}"
|
||||||
@@ -88,31 +107,32 @@ if ! run "docker logs ${did} | grep 'post.ini'"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Check PHP connectivity
|
# Check PHP connectivity
|
||||||
|
print_h2 "Checking connectivity"
|
||||||
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then
|
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; then
|
||||||
# Info
|
# Info
|
||||||
run "netstat -tuln"
|
run "netstat -tuln"
|
||||||
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "docker ps --no-trunc"
|
run "docker ps --no-trunc"
|
||||||
docker_exec "${ndid}" "nginx -t"
|
docker_exec "${name_nginx}" "nginx -t"
|
||||||
|
|
||||||
# Show logs
|
# Show logs
|
||||||
docker_logs "${ndid}" || true
|
docker_logs "${name_nginx}" || true
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
|
||||||
# Ensure file is available
|
# Ensure file is available
|
||||||
docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${name_nginx}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${name}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
|
|
||||||
docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${name_nginx}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${name}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
|
|
||||||
# Nginx configuration
|
# Nginx configuration
|
||||||
docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf"
|
docker_exec "${name_nginx}" "cat ${CONFIG_CONT}/php.conf"
|
||||||
|
|
||||||
# Shutdown
|
# Shutdown
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${name_nginx}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
rm -rf "${PHP_INI_HOST}"
|
rm -rf "${PHP_INI_HOST}"
|
||||||
@@ -121,17 +141,18 @@ if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php >/dev/null 2>&1"; th
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Check modified php.ini
|
# Check modified php.ini
|
||||||
if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M'"; then
|
print_h2 "Checking modified php.ini"
|
||||||
|
if ! docker_exec "${name}" "php -r \"echo ini_get('post_max_size');\" | grep '17M'"; then
|
||||||
# Info
|
# Info
|
||||||
docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\""
|
docker_exec "${name}" "php -r \"echo ini_get('post_max_size');\""
|
||||||
|
|
||||||
# Show logs
|
# Show logs
|
||||||
docker_logs "${ndid}" || true
|
docker_logs "${name_nginx}" || true
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
|
||||||
# Shutdown
|
# Shutdown
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${name_nginx}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
rm -rf "${PHP_INI_HOST}"
|
rm -rf "${PHP_INI_HOST}"
|
||||||
@@ -140,31 +161,32 @@ if ! docker_exec "${did}" "php -r \"echo ini_get('post_max_size');\" | grep '17M
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Check modified php.ini
|
# Check modified php.ini
|
||||||
|
print_h2 "Checking modified php.ini"
|
||||||
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then
|
if ! run "curl -q -4 http://127.0.0.1:${WWW_PORT}/index.php 2>/dev/null | grep post_max_size | grep '17M'"; then
|
||||||
# Info
|
# Info
|
||||||
run "netstat -tuln"
|
run "netstat -tuln"
|
||||||
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -4 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
run "curl -6 http://127.0.0.1:${WWW_PORT}/index.php" || true
|
||||||
run "docker ps --no-trunc"
|
run "docker ps --no-trunc"
|
||||||
docker_exec "${ndid}" "nginx -t"
|
docker_exec "${name_nginx}" "nginx -t"
|
||||||
|
|
||||||
# Show logs
|
# Show logs
|
||||||
docker_logs "${ndid}" || true
|
docker_logs "${name_nginx}" || true
|
||||||
docker_logs "${did}" || true
|
docker_logs "${name}" || true
|
||||||
|
|
||||||
# Ensure file is available
|
# Ensure file is available
|
||||||
docker_exec "${ndid}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${name_nginx}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
docker_exec "${did}" "ls -la ${DOC_ROOT_CONT}/"
|
docker_exec "${name}" "ls -la ${DOC_ROOT_CONT}/"
|
||||||
|
|
||||||
docker_exec "${ndid}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${name_nginx}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
docker_exec "${did}" "cat ${DOC_ROOT_CONT}/index.php"
|
docker_exec "${name}" "cat ${DOC_ROOT_CONT}/index.php"
|
||||||
|
|
||||||
# Nginx configuration
|
# Nginx configuration
|
||||||
docker_exec "${ndid}" "cat ${CONFIG_CONT}/php.conf"
|
docker_exec "${name_nginx}" "cat ${CONFIG_CONT}/php.conf"
|
||||||
|
|
||||||
# Shutdown
|
# Shutdown
|
||||||
docker_stop "${ndid}" || true
|
docker_stop "${name_nginx}" || true
|
||||||
docker_stop "${did}" || true
|
docker_stop "${name}" || true
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
rm -rf "${PHP_INI_HOST}"
|
rm -rf "${PHP_INI_HOST}"
|
||||||
@@ -174,8 +196,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
docker_stop "${did}"
|
print_h2 "Cleanup"
|
||||||
docker_stop "${ndid}"
|
docker_stop "${name}"
|
||||||
|
docker_stop "${name_nginx}"
|
||||||
rm -rf "${DOC_ROOT_HOST}"
|
rm -rf "${DOC_ROOT_HOST}"
|
||||||
rm -rf "${CONFIG_HOST}"
|
rm -rf "${CONFIG_HOST}"
|
||||||
rm -rf "${PHP_INI_HOST}"
|
rm -rf "${PHP_INI_HOST}"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user